![]() |
This course is currently being improved through our peer review process. |
Software Engineering
Purpose of Course showclose
Software engineering is a discipline that allows us to apply engineering and computer science concepts in the development and maintenance of reliable, usable, and dependable software. The concept of software engineering was first discussed at the 1968 NATO Science Committee in Germany. Today, many practitioners still debate over the term software engineering, often arguing that this discipline does not meet the criteria of engineering; rather, it should be called software development. There are several areas to focus on within software engineering, such as design, development, testing, maintenance, and management. Software development outside of the classroom is a very complex process notably from the fact that real-world software is much larger and more complex.
The purpose of this course is to present software engineering as a body of knowledge. The course is designed to present software engineering concepts and principles in parallel with the software development life cycle. The first unit will introduce you to Software Engineering, giving you a definition of this body of knowledge, as well as a discussion of the main Methodologies of Software Engineering. You will then learn about the Software Development Life Cycle (SDLC) followed by Software Modeling using Unified Modeling Language (UML), a standardized general-purpose modeling language used to create visual models of object-oriented software. You will go on to learn about three major phases of SDLC including Software Requirements and Analysis, Software Design, and Software Testing. You will also learn about Project Management for the purpose of delivering timely and high-quality software. By the time the course is complete, you will master software engineering concepts, principles and essential processes of SDLC; you will demonstrate this knowledge by creating UML artifacts for Requirements and Analysis as well as Software Design phases using an object-oriented methodology.
Course Information showclose
Course Designer: Irene Wong-Bushby
Primary Resources: This course is comprised of a range of different free, online materials. However, the course makes primary use of the following materials:
- Global Text Project’s version of Sue A. Conger’s The New Software Engineering (PDF)
- The Final Exam
In order to “pass” this course, you will need to earn a 70% or higher on the Final Exam. Your score on the exam will be tabulated as soon as you complete it. If you do not pass the exam, you may take it again.
Time Commitment: This course should take you about 135 hours to complete. Each unit includes a “time advisory” that lists the amount of time you are expected to spend on each subunit. These should help you plan your time accordingly. It may be useful to take a look at these time advisories and to determine how much time you have over the next few weeks to complete each unit, and then to set goals for yourself. For example, Unit 1 should take you approximately 7 hours to complete. Perhaps you can sit down with your calendar and decide to complete subunits 1.1.1 (a total of 1 hour) on Monday night; subunit 1.1.2 (a total of 2 hours) on Tuesday night; subunit 1.1.3 (a total of 4 hours) on Wednesday night; etc.
Suggestions/Tips: This course is based on Sue Conger’s text The New Software Engineering. Except for Units 3 and 8, you will benefit going through the course in sequence as the concepts build on each other throughout the text. If you are already familiar with Object-oriented analys is and design OOAD, you may skip Unit 3 or use Unit 3 as a review. Unit 8 represents a summative review of OOAD, using a case study approach. This course gives special emphasis to OO as the OO perspective is compliant with ACM/IEEE’s Software Engineering curriculum. It may help to take detailed notes as you work through the text, which will help you prepare for your Final Exam.
Learning Outcomes showclose
- Demonstrate mastery of software engineering knowledge and skills, and professional issues necessary to practice software engineering.
- Discuss principles of software engineering.
- Describe software development life cycle models.
- Learn principles of software modeling through UML as a modeling language.
- Identify major activities and key deliverables in a software development life cycle during software requirements and analysis, software design, and software testing.
- Apply the object-oriented methodology in software engineering to create UML artifacts for software analysis and requirements, software design, and software testing.
- Apply project management concepts in a software engineering environment to manage project, people, and product.
- Participate as an individual and as part of a team to deliver quality software systems.
Course Requirements showclose
√ Have access to a computer.
√ Have continuous broadband Internet access.
√ Have the ability/permission to install plug-ins or software (e.g. Adobe Reader orFlash).
√ Have the ability to download and save files and documents to a computer.
√ Have the ability to open Microsoft files and documents (e.g. .doc, .ppt, .xls, etc.).
√ Be competent in the English language.
√ Have read the Saylor Student Handbook.
√ Have completed the following courses in “The Core Program” of the Computer Science discipline: CS101, CS102, CS107, CS201, CS202,and CS301.
Unit Outline show close
Expand All Resources Collapse All Resources
-
Unit 1: Introduction To Software Engineering
When dependency on software and computers became more important, software grew in size and became a necessity for businesses and users all over the world. The last 30 years has seen an unparalleled explosion in the amount of software produced and usedby our modern society. There is now a need to set concrete objectives(e.g. functional requirements), predict necessary resources(e.g. cost estimate)to attain those objectives,and manage customers’ expectations.
Unit 1 Time Advisory show close
As you review the material in this unit, compare and contrast software engineering with computer science.These two disciplines are closely related, but they have some differences. It is important to gain this understanding as you review the material in subunit 1.1.1.2. Also, spend some time on the three commonly used methodologies in software engineering (i.e., data-oriented, process-oriented and object-oriented). You will find this central theme (i.e. the three methodologies) repeated in software requirements and analysis as well as software design.
Unit 1 Learning Outcomes show close
- 1.1 Software Engineering Overview
-
1.1.1 What Is Software Engineering?
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering”
Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering” (PDF)
Instructions: Scroll down the webpage to the title “The New Software Engineering;” note that the titles are in alphabetical order. Click on the “PDF” hyperlink after this title to open the PDF file. Please read the sections titled “Introduction” and “Software Engineering” in Chapter 1 (pages 1-4). You will use this text throughout the course, so you may want to save a copy of the PDF to your desktop to easily access as you move through each unit. This text positions software engineering as a multi-trillion dollar investment in typical Fortune 1000 companies. It discusses what is software engineering and defines basic software engineering terms.
This subunit should take you approximately 30 minutes to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering”
-
1.1.1.1 History of Software Engineering
- Reading: ETH Zurich’s Department of Computer Science: Professor Emeritus Niklaus Wirth’s “A Brief History of Software Engineering”
Link: ETH Zurich’s Department of Computer Science: Professor Emeritus Niklaus Wirth’s “A Brief History of Software Engineering” (PDF)
Instructions: Please click on the link above for the webpage “Miscellaneous Topics,” and then click on the hyperlink in the bulleted list titled “A Brief History of Software Engineering.” Please read the entire PDF (10 pages). This text provides an overview of how software engineering came to be and how it is still growing as a discipline. Niklaus Wirth is a retired professor, who has taught in the Computer Science departments at Stanford University, University of Zurich, and ETH Zurich.
This reading should take you approximately 20 minutes to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: ETH Zurich’s Department of Computer Science: Professor Emeritus Niklaus Wirth’s “A Brief History of Software Engineering”
-
1.1.1.2 Differences between Software Engineering and Computer Science
- Reading: Milwaukee School of Engineering: “Computer Science vs. Software Engineering”
Link: Milwaukee School of Engineering: “Computer Sciencevs. Software Engineering” (HTML)
Instructions: Please read the entire text, which summarizes the key characteristics of and differences between Computer Science and Software Engineering.
This reading should take you approximately 20 minutes to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Milwaukee School of Engineering: “Computer Science vs. Software Engineering”
-
1.1.2 Software Applications
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering”
Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering”: “Chapter 1: Overview of Software Engineering” (PDF)
Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.” (Note that the titles are in alphabetical order.) Click on the “PDF” hyperlink after this title to open the PDF file. Please read the section titled “Applications” in Chapter 1 (pages 5-23). This reading assignment covers the next four topics outlined in subunits 1.1.2.1-1.1.2.4: Software Characteristics, Software Responsiveness, Types of Software, and Software in Business.
This reading should take you approximately 4 hours to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering”
-
1.1.2.1 Software Characteristics
Note: This topic is covered by the reading under subunit 1.1.2. Please focus on the section titled “Application Characteristics” on pages 5-13 of the reading; in particular, make sure to carefully review Figure 1-1 on page 6 for an overview of software characteristics.
-
1.1.2.2 Software Responsiveness
Note: This topic is covered by the reading under subunit 1.1.2. Please focus on the section titled “Application Responsiveness” on pages 13-17 of the reading; in particular, make sure to carefully review Figure 1-12 on page 14 for an overview of two types of software responsiveness.
-
1.1.2.3 Types of Applications
Note: This topic is covered by the reading under subunit 1.1.2. Please focus on the section titled “Types of Applications” on pages 17-22 of the reading.
-
1.1.2.4 Applications in Business
Note: This topic is covered by the reading under subunit 1.1.2. Please focus on the section titled “Applications in Business” on pages 22 and 23 of the reading; in particular, make sure to carefully review Figure 1-17 on page 22 for an overview of application in business.
-
1.1.3 Attributes of Good Software
- Reading: Center for Software Engineering’s version of “ISO/IEC 9126: The Standard of Reference”
Link: Center for Software Engineering’s version of “ISO/IEC 9162: The Standard of Reference” (HTML)
Instructions: Please read a summary of the International Standard Organization/International Electrotechnical Commission’s (ISO/IEC) 9126 industry standard on software quality using the link above. This reading also covers the topics outlined in subunits 1.1.3.1 and 1.1.3.2.
This reading should take you approximately 2 hours to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Center for Software Engineering’s version of “ISO/IEC 9126: The Standard of Reference”
-
1.1.3.1 Functionality, Reliability, and Usability
Note: This topic is covered by the reading under subunit 1.1.3. Pay particular attention to the chart that addresses the six characteristics of software, noting the questions asked to check software quality. Also, make sure to review the functionality, reliability, and usability sections of the table that presents characteristics, subcharacteristics, and definitions.
-
1.1.3.2 Efficiency, Maintainability, and Portability
Note: This topic is covered by the reading under subunit 1.1.3. Pay particular attention to the chart that addresses the six characteristics of a software, noting the questions asked to check software quality. Also, make sure to review the efficiency, maintainability, and portability sections of the table that presents characteristics, subcharacteristics, and definitions.
-
1.2 Software Engineering Methodologies
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering”
Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering” (PDF)
Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.” (Note that the titles are in alphabetical order.) Click on the “PDF” hyperlink after this title to open the PDF file. Please read the following sections in Chapter 1: Methodologies and User Involvement in Application Development (pages 34 -39). A methodology is a body of practices within a discipline (e.g. software engineering). It can contain procedures, techniques, and processes. According to Conger, there are five classes of software engineering methodologies. For the purpose of this course, you will look at the more commonly used data-oriented, process-oriented, and object-oriented (OO) methodologies. This course places special emphasis on the OO methodology. The OO perspective is compliant with ACM/IEEE’s Software Engineering curriculum.
This reading should take approximately 1 hour to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering”
-
1.3 Software Engineering Code of Ethics and Professional Practices
- Reading: Lancaster University: ACM/IEEE-CS’s “Professional and Ethical Responsibility”
Link: Lancaster University: ACM/IEEE-CS’s “Professional and Ethical Responsibility” (PDF)
Instructions: Scroll down to the bottom of the webpage to the hyperlink “Ethical and Professional Issues.” Click on the link to open the PDF file. Please read the material in its entirety (4 pages). In addition to adhering to standards of honesty and integrity, software engineers also operate under a code of professional ethics as a profession-at-large.
This reading should take approximately 15 minutes to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.The Saylor Foundation does not yet have materials for this portion of the course. If you are interested in contributing your content to fill this gap or aware of a resource that could be used here, please submit it here.
- Reading: The Global Text Project’s version of Sue A. Conger’s The New Software Engineering: “Chapter 4: Data Gathering for Application Development”
Link: The Global Text Project’s version of Sue A. Conger’s The New Software Engineering: “Chapter 4: Data Gathering for Application Development” (PDF)
Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.” (Note that the titles are in alphabetical order). Click on the “PDF” hyperlink after this title to open the PDF file. Please read the following sections in Chapter 4: Professionalism and Ethics (pages 102-107). According to the Association of Computing Machinery (ACM) and Data Processing Management Association (DPMA), professionalism is acting in accordance with the highest expectations of a professional group. As you read the ACM Code of Ethics, think about ethics and professionalism as going hand in hand.
This reading should take approximately 1 hour to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Assessment: The Saylor Foundation’s “Unit 1 Checkpoint”
Link: The Saylor Foundation’s “Unit 1 Checkpoint” (PDF)
Instructions: Please click on the link above, and follow the instructions to complete this assessment. When you have completed the assessment, check your answers against the “Unit 1 Checkpoint Answer Key” (PDF).
Completing this assessment should take approximately 15 minutes.See a broken link? Please let us know!
- Reading: Lancaster University: ACM/IEEE-CS’s “Professional and Ethical Responsibility”
-
Unit 2: Software Development Life Cycle Models
Software Development Life Cycle SDLC refers to the process of software development. The International Organization for Standardization’s ISO12207, the industry standard for software life cycle processes, describes the Development process as consisting of requirements, design, code, and (three levels of) testing. There are different approaches to break down the work when developing software systems.Waterfall, V-Shape, Prototype, Incremental, Spiral etc. are examples of SDLC models. Conceptually, each model provides specific guidance to the sequencing, and repetition, of life cycle activities to deliver high-quality software systems. The various life cycle models fall into two basic categories: sequential and iterative.
Unit 2 Time Advisory show close
As you review the material in this unit, try to see the similarities in these two categories of life cycle models from the ISO12207 Development process perspective (i.e., requirements, design, code,and testing). This will help you grasp the basic concepts of SDLC. This unit connects strongly with the Project Management unit later in the course. Choosing and managing a software life cycle process isa central component of Project Management.
Unit 2 Learning Outcomes show close
-
2.1 Software Development Life Cycle (SDLC)
- Web Media: YouTube: Iman Louis’s “Software Development Life Cycle”
Link: YouTube: Iman Louis’s “Software Development Life Cycle” (YouTube)
Instructions: Please watch the linked video (1:27 minutes). The video provides an entertaining viewpoint that justifies the need for a formal software development life cycle process.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Abelia Corporation’s version of Lewis Gray’s “International Standard ISO/IEC 12207 Software Life Cycle Processes”
Link: Abelia Corporation’s version of Lewis Gray’s “International Standard ISO/IEC 12207 Software Life Cycle Processes” (PDF)
Instructions: The access the above reading, select the link and then locate the link with article's title. This should take you to the description of the reading. Once there, select the link for "File name: <12207cpt.pdf>" to access the PDF. Please read the linked material in its entirety (18 pages). Note that this reading also covers the topics of the primary processes (i.e. Acquisition and Supply, Development, and Operation and Maintenance) outlined in subunits 2.1.1 through 2.1.3. The ISO/IEC 12207 is a common framework for software life cycle. The framework prescribes work breakdown for software life cycle processes as consisting of acquisition, supply, development, operation, and maintenance.
This subunit should take approximately 2.5 hours to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Web Media: YouTube: Iman Louis’s “Software Development Life Cycle”
-
2.1.1 Acquisition and Supply
Note: This topic is covered by the reading under subunit 2.1. In particular, please focus on pages 7-9, which describes the primary processes.
-
2.1.2 Development
Note: This topic is covered by the reading under subunit 2.1. In particular, please focus on pages 7-9, which describes the primary processes.
-
2.1.3 Operation and Maintenance
Note: This topic is covered by the reading under subunit 2.1. In particular, please focus on pages 7-9, which describes the primary processes.
-
2.2 Sequential Life Cycle Model
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering”
Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering” (PDF)
Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.” (Note that the titles are in alphabetical order.) Click on the “PDF” hyperlink after this title to open the PDF file. Please read the sections titled “Project Life Cycles” and “Sequential Project Life Cycle” in Chapter 1 on pages 23-28. The Sequential Life Cycle Model, also known as a “Waterfall” approach, has a work breakdown structure where the stages of work are executed in sequence and the output of each stage becomes input to the next stage.
This reading should take approximately 1.5 hours to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering”
-
2.3 Iterative Life Cycle Model
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering”
Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering” (PDF)
Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.” (Note that the titles are in alphabetical order.) Click on the “PDF” hyperlink after this title to open the PDF file. Please read the following section titled “Iterative Project Life Cycle” in Chapter 1 on pages 29-31. The Sequential Life Cycle Model has an inherent limitation that it does not recognize the iterative or nonlinear nature of certain types of application development. Under certain conditions, the Iterative Life Cycle may be more appropriate. For example, if requirements are not fully known, it may be appropriate to jointly discover the requirements of an application by applying the Iterative Life Cycle Model.
This reading should take approximately 1 hour to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Web Media: YouTube: Chris Spagnuolo: “Agile vs. Waterfall: A Tale of Two Teams”
Link: YouTube: Chris Spagnuolo: “Agile vs. Waterfall: A Tale of Two Teams” (YouTube)
Instructions: Please watch the linked video (8:20 minutes). The video provides a scenario-based comparison of the Waterfall versus Agile (i.e., Iterative Life Cycle) Development.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Assessment: The Saylor Foundation’s “Unit 2 Checkpoint”
Link: The Saylor Foundation’s “Unit 2 Checkpoint” (PDF)
Instructions: Please click on the link above, and follow the instructions to complete this assessment. When you have completed the assessment, check your answers against the “Unit 2 Checkpoint Answer Key” (PDF).
Completing this assessment should take approximately 15 minutes.See a broken link? Please let us know!
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 1: Overview of Software Engineering”
-
Unit 3: Software Modeling
Many believe that good design is fundamentalto creating successful software. The first step in software creation is to develop software design. Notations, such as UML,allow us to articulate complex ideas succinctly and precisely. Designing software requires the use of certain industry standard design tools andmasteryof themis essential to becoming a capable software engineer.
Unit 3 Time Advisory show close
This unit will introduce you to UML, a standardized general-purpose modeling language for creating visual models of object-oriented software. This unitaimsto give you a comprehensive understanding of UML, the five fundamental artifactsof UML,and modeling concepts,as well as themodeling concepts’relationshipsto the terms system, model,and view.
Unit 3 Learning Outcomes show close
-
3.1 Object-Oriented Concepts
- Web Media: YouTube: bidwx Learning Labs: “Objects and Classes”
Link: YouTube: bidwx Learning Labs: “Objects and Classes” (YouTube)
Instructions: Please watch the linked video (8:46 minutes). The video traces the concept of Classes to the days of philosophers Aristotle and Plato.
You should spend approximately 15 minutes viewing and taking notes on this video.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: The Global Text Project’s version of Sue A. Conger’s The New Software Engineering: “Chapter 11: Object-Oriented Analysis”
Link: The Global Text Project’s version of Sue A. Conger’s The New Software Engineering: “Chapter 11: Object-Oriented Analysis” (PDF)
Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.” (Note that the titles are in alphabetical order). Click on the “PDF” hyperlink after this title to open the PDF file. Please read the section titled “Definition of Object-Oriented Terms” in Chapter 11 (pages 461-463). This reading will cover basic object-oriented terms including Classes/Objects; Abstract Data Type ADT/Encapsulation; Whole/Part and Generalization/Specification Classes; Inheritance/Polymorphism; and Messages as outlined in subunits 3.1.1 through 3.1.5 below.
This subunit should take approximately 1 hour to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Web Media: YouTube: bidwx Learning Labs: “Objects and Classes”
-
3.1.1 Classes/Objects
Note: This topic is covered by the reading under subunit 3.1. Pay particular attention to the video lecture, as well as note the bolded definition of class/objects on page 462. Also, carefully review Figure 11-2 on page 461.
-
3.1.2 Abstract Data Type ADT/ Encapsulation
Note: This topic is covered by the reading under subunit 3.1. Please review the bolded definition of abstract data type on page 462.
-
3.1.3 Whole/Part and Generalization/Specialization Classes
Note: This topic is covered by the reading under subunit 3.1. Please review the bolded definition of abstract data type on page 462.
-
3.1.4 Inheritance/Polymorphism
Note: This topic is covered by the reading under subunit 3.1. Please review the bolded definition of abstract data type on page 462.
-
3.1.5 Messages
Note: This topic is covered by the reading under subunit 3.1. Please review the bolded definition of abstract data type on page 462.
-
3.2 An Overview of UML
- Web Media: YouTube: Mike Murphy’s “Introduction to UML”
Link: YouTube: Mike Murphy’s “Introduction to UML” (YouTube)
Instructions: Please watch the linked video (7:20 minutes). The video provides information to introduce UML as a tool for software engineers. After viewing the video, try to write a summary that answers the following question: what is UML?
Viewing this video and writing this summary should take approximately 15 minutes to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Web Media: YouTube: Mike Murphy’s “Introduction to UML”
-
3.2.1 Use Cases
- Web Media: YouTube: Mike Murphy’s “Use Cases”
Link: YouTube: Mike Murphy’s “Use Cases” (YouTube)
Instructions: Please watch the linked video (10:35 minutes). The video provides a discussion of the use case diagram in UML. Can you describe each component of a use case diagram?
Viewing this video and answering the question above should take approximately 15 minutes to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Web Media: YouTube: Mike Murphy’s “Use Cases”
-
3.2.2 UML State Diagrams
- Web Media: YouTube: Mike Murphy’s “UML State Diagrams”
Link: YouTube: Mike Murphy’s “UML State Diagrams” (YouTube)
Instructions: Please watch the linked video (11:21 minutes). The video provides a discussion of the state diagram in UML. What is the purpose of the state diagram?
Viewing the video and answering the question above should take approximately 15 minutes to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Web Media: YouTube: Mike Murphy’s “UML State Diagrams”
-
3.2.3 UML Class Diagrams
- Web Media: YouTube: Mike Murphy’s “UML Class Diagrams”
Link: YouTube: Mike Murphy’s “UML Class Diagrams” (YouTube)
Instructions: Please watch the linked video (9:12 minutes). The video provides a discussion of the class diagram in UML. What is the purpose of the class diagram?
Viewing the video and answering the question above should take approximately 15 minutes to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Web Media: YouTube: Mike Murphy’s “UML Class Diagrams”
-
3.2.4 Activity and Interaction Diagrams
- Web Media: YouTube: Bidwx Learning Lab’s “Use Case, Activity, and Sequence Diagrams”
Link: YouTube: Bidwx Learning Lab’s “Use Case, Activity, and Sequence Diagrams” (YouTube)
Instructions: Please watch the linked video (9:55 minutes). The video explains how to apply a use case.
Viewing this video and taking notes should take approximately 15 minutes to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Web Media: YouTube: Bidwx Learning Lab’s “Use Case, Activity, and Sequence Diagrams”
- 3.2.5 Activity Diagrams
-
3.3 Modeling Concepts
- Web Media: YouTube: Mike Murphy’s “Object-Oriented Design”
Link: YouTube: Mike Murphy’s “Object-Oriented Design” (YouTube)
Instructions: Please watch the linked video (8:56 minutes). The video provides a discussion of using UML for object-oriented design.
Viewing the video and taking notes should take you approximately 15 minutes to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Web Media: YouTube: Mike Murphy’s “Object-Oriented Design”
-
3.4 UML 2.0
- Reading: IBM: Donald Bell's “UML Basics”
Link: IBM: Donald Bell's “UML Basics” (HTML)
Instructions: This document walks you through all of the major components of the UML 2.0 standard. The IBM package is one of many commercial products for drawing diagrams; focus on the explanation and examples of each of the 13 types of diagrams.
This reading should take approximately 1 hour to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Assessment: The Saylor Foundation’s “Unit 3 Checkpoint”
Link: The Saylor Foundation’s “Unit 3 Checkpoint” (PDF)
Instructions: Please click on the link above, and follow the instructions to complete this assessment. When you have completed the assessment, check your answers against the “Unit 3 Checkpoint Guide to Responding” (PDF).
Completing this assessment should take approximately 30 minutes.See a broken link? Please let us know!
- Reading: IBM: Donald Bell's “UML Basics”
-
Unit 4: Software Requirements and Analysis
Requirements elicitation requires the software engineer to interact with the user to gather information about “what” the software system needs to do. In this unit,we examinethe software engineer’s activities to elicit, to analyze (or translate), to validate and to manage this phase of the life cycle in working with the user to achieve a common understanding of the user’s goals. This set of activities is referred to as Analysis and focuses on “what” the application will do; whereas Design describes “how” the application will work (Unit 5 Software Design). There are many ways to elicit and analyze user requirements. As introduced in subunit 1.2, the three most commonly used methodologies are data-oriented, process-oriented, and object-oriented. In this unit, we will drive deeper and examine the conceptual foundations, the activities, and deliverables underlying each of these methodologies applicable to software requirements and analysis.
Unit 4 Time Advisory show close
As you review the material in this unit, spend some time on the object-oriented methodology as it applies to software requirements and analysis. You will be applying this in a later unit to put it all together in a case study.
Unit 4 Learning Outcomes show close
- 4.1 Requirements Fundamentals
-
4.1.1 Characteristics of Good Requirements: Correct, Complete, Consistent etc.
- Reading: Department of Defense's Systems Management College's “System Engineering Fundamentals, Chapter 4 Requirements Analysis”
Link: Department of Defense's Systems Management College's “Systems Engineering Fundamentals, Chapter 4: Requirements Analysis” (PDF)
Instructions: Please select Chapter 4 starting on page 35 and read to the end of the chapter on page 40. The IEEE considers good Software Requirement Specifications (SRS) as having eight “qualities” or characteristics. The eight qualities are correct, unambiguous, complete, consistent, stable, verifiable, modifiable, and traceable. How does the military incorporate each of the eight qualities in its guide for software development?
This reading should take approximately 1/2 hour to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Department of Defense's Systems Management College's “System Engineering Fundamentals, Chapter 4 Requirements Analysis”
-
4.1.2 Content of Good requirements: Functional and Non-functional
- Reading: Department of Defense's Systems Management College's “System Engineering Fundamentals, Chapter 5 Functional Analysis and Allocation”
Link: Department of Defense's Systems Management College's “System Engineering Fundamentals, Chapter 5 Functional Analysis and Allocation (PDF)
Instructions: Please select Chapter 5 starting on page 45 and read to the end of the chapter (including supplements) on page 56. In addition to the eight “characteristics” of a good SRS, the IEEE also recommends both functional and non-functional (performance) requirements. Functional requirements represent what the system will do to accept and process inputs and generate outputs. For example, for an accounting system, this may be customer statement preparation at the end of the month. Non-functional requirements represent how the system has to be to satisfy system constraints. For example, this may be to prepare all customer statements within a five-hour batch window. As you read the text, note the functional and non-funtional requirements included in the examples.
This reading should take approximately 1 hour to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.The Saylor Foundation does not yet have materials for this portion of the course. If you are interested in contributing your content to fill this gap or aware of a resource that could be used here, please submit it here.
- Reading: Department of Defense's Systems Management College's “System Engineering Fundamentals, Chapter 5 Functional Analysis and Allocation”
-
4.2 Requirements Activities
- Reading: Carnegie Mellon’s Software Engineering Institute: “A Framework for Software Product Line Practice, Version 5.0:” “Requirements Engineering”
Link: Carnegie Mellon’s Software Engineering Institute: “A Framework for Software Product Line Practice, Version 5.0:” “Requirements Engineering” (HTML)
Instructions: Please read the article in its entirety. According to Carnegie Mellon’s Software Engineering Institute SEI, there are five techniques (corresponding to the following five subunits of this course) that can be applied systematically in the requirements process. This reading covers subunits 4.2.1 through 4.2.5: Requirements Elicitation, Requirements Analysis, Requirements Specification, Requirements Verification and Requirements Management.
This subunit should take approximately 1 hour to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Carnegie Mellon’s Software Engineering Institute: “A Framework for Software Product Line Practice, Version 5.0:” “Requirements Engineering”
-
4.2.1 Requirements Elicitation
Note: This topic is covered by the reading under subunit 4.2. In particular, please focus on the sections on “Requirements elicitation.”
-
4.2.2 Requirements Analysis
Note: This topic is covered by the reading under subunit 4.2. In particular, please focus on the sections on “Requirements analysis.”
-
4.2.3 Requirements Specification
Note: This topic is covered by the reading under subunit 4.2. In particular, please focus on the section on “Requirements specification.”
-
4.2.4 Requirements Verification
Note: This topic is covered by the reading under subunit 4.2. In particular, please focus on the section on “Requirements verification.”
-
4.2.5 Requirements Management
Note: This topic is covered by the reading under subunit 4.2. In particular, please focus on the section on “Requirements management.”
-
4.3 Requirements Elicitation Techniques
- Reading: The Global Text Project’s version of Sue A. Conger’s The New Software Engineering: “Chapter 4: Data Gathering for Application Development”
Link: The Global Text Project’s version of Sue A. Conger’s The New Software Engineering: “Chapter 4: Data Gathering for Application Development” (PDF)
Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.” (Note that the titles are in alphabetical order). Click on the “PDF” hyperlink after this title to open the PDF file. Please read the section titled “Data Collection Techniques” in Chapter 4 on pages 87-107. There are many data gathering techniques including interviews, meetings, observations, temporary job assignment, questionnaires, documentation reviews, and software reviews.
This reading should take approximately 4 hours to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: The Global Text Project’s version of Sue A. Conger’s The New Software Engineering: “Chapter 4: Data Gathering for Application Development”
- 4.4 Requirements and Analysis Methodologies
-
4.4.1 Process-Oriented Analysis
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 7: Process-Oriented Analysis”
Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 7: Process-Oriented Analysis” (PDF)
Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.” (Note that the titles are in alphabetical order.) Click on the “PDF” hyperlink after this title to open the PDF file. Please read Chapter 7: Process-Oriented Analysis in its entirety (pages 227-278). Process-oriented analysis originated with the work of Yourdon-DeMarco and Gane-Sarson. The analysis follows a top-down approach to progressively more detailed levels of process analysis resulting in “context diagrams,” “data flow diagrams,” and “data dictionary” entities. Please note that this reading covers the topics outlined in subunits 4.4.1.1 through 4.4.1.4.
This subunit should take approximately 10 hours to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 7: Process-Oriented Analysis”
-
4.4.1.1 Introduction
Note: This topic is covered by the reading under subunit 4.4.1. Please focus on pages 227-231 of the reading. This reading covers the concepts and terminologies for process-oriented design.
-
4.4.1.2 Develop Context Diagram
Note: This topic is covered by the reading under subunit 4.4.1. Please focus on pages 231-241 of the reading. The Context Diagram represents the scope of the project.
-
4.4.1.3 Develop Data Flow Diagram
Note: This topic is covered by the reading under subunit 4.4.1. Please focus on pages 241-261 of the reading. The Data Flow Diagram identifies the flow of data through business processes to achieve a business function.
-
4.4.1.4 Develop Data Dictionary
Note: This topic is covered by the reading under subunit 4.4.1. Please focus on pages 261-270 of the reading. The Data Dictionary is a central repository of business entities and their relationships to the application.
-
4.4.2 Data-Oriented Analysis
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 9 Data-Oriented Analysis”
Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 9 Data-Oriented Analysis” (PDF)
Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.” (Note that the titles are in alphabetical order). Click on the “PDF” hyperlink after this title to open the PDF file. Please read Chapter 9: Data-Oriented Analysis in its entirety (pages 328-390). Information Engineering (IE) is the methodology used to illustrate data-oriented analysis. In Data-Oriented approach, there is the notion that “data” are more stable than “processes.” Business Area Analysis (BAA), which is the IE term for Analysis, begins with an analysis of data followed by business function processes resulting in “Entity Relationship Diagrams” (ERDs), “Data Flow Diagrams” (DFDs), and the entity/process matrix called CRUD matrix (for create-retrieve-update-delete). Please note that this reading covers the topics outlined in subunits 4.4.2.1 through 4.4.2.6.
This reading should take approximately 16 hours to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 9 Data-Oriented Analysis”
-
4.4.2.1 Introduction
Note: This topic is covered by the reading under subunit 4.4.2. Please focus on pages 328-339 of the reading. This reading covers the concepts and terminologies for data-oriented analysis.
-
4.4.2.2 Develop Entity-Relationship Diagram
Note: This topic is covered by the reading under subunit 4.4.2. Please focus on pages 339-356 of the reading. The Entity-Relationship Diagram describes the data scope of the application.
-
4.4.2.3 Decompose Business Functions
Note: This topic is covered by the reading under subunit 4.4.2. Please focus on pages 356-363 of the reading. Decomposing business functions means analyzing a business function in terms of its processes and sub-processes.
-
4.4.2.4 Develop Process Dependency Diagram
Note: This topic is covered by the reading under subunit 4.4.2. Please focus on pages 363-372 of the reading. The Process Dependency Diagram identifies the types of relationships between processes.
-
4.4.2.5 Develop Process Flow Diagram
Note: This topic is covered by the reading under subunit 4.4.2. Please focus on pages 372-381 of the reading. The Process Flow Diagram is an expanded Process Dependency Diagram with data stores.
-
4.4.2.6 Develop and Analyze Entity/Process Matrix
Note: This topic is covered by the reading under subunit 4.4.2. Please focus on pages 381-387 of the reading. The Entity/Process Matrix is also known as a CRUD (create, retrieve, update, delete) matrix.
-
4.4.3 Object-Oriented Analysis
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 11: Object-Oriented Analysis”
Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 11: Object-Oriented Analysis” (PDF)
Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.” (Note that the titles are in alphabetical order). Click on the “PDF” hyperlink after this title to open the PDF file. Please read the sections beginning with Object-Oriented Analysis Activities in Chapter 11: Object-Oriented Analysis (pages 463-500). Unlike process-oriented (which is focused on “functional” thinking) and data-oriented (which is focused on “entity” thinking) analyses, objected-oriented analysis is focused on “object” thinking. Data and processes are married early in the process and encapsulated into Classes/Objects. Object-oriented analysis (and design) represents a paradigm shift in software development. As you read this material, bear in mind that the text illustrates this approach using the Booch notation, which has been supplanted by the Unified Modeling Language (UML). However, much of the Booch notation has been “unified” in UML and is, therefore, still valid especially the “class diagrams,” and the classification of classes into whole/part or generalization/specialization classes. Please note that this reading covers the topics outlined in subunits 4.4.3.1 through 4.4.3.4.
This subunit should take approximately 10 hours to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 11: Object-Oriented Analysis”
-
4.4.3.1 Introduction
Note: This topic is covered by the reading under subunit 4.4.3. Please focus on pages 459-463 of the reading. This reading covers the concepts and terminologies for object-oriented analysis.
-
4.4.3.2 Develop Summary Paragraph, Identify Objects of Interest, and Identify Processes
Note: This topic is covered by the reading under subunit 4.4.3. Please focus on pages 463-479 of the reading. This reading covers the first steps of object-oriented analysis leading to the identification of objects and processes.
-
4.4.3.3 Define the Attributes of Objects and Processes
Note: This topic is covered by the reading under subunit 4.4.3. Please focus on pages 479-486 of the reading. This reading covers the definition of attributes for objects and processes.
-
4.4.3.4 Perform Class Analysis and Draw State-Transition Diagram
Note: This topic is covered by the reading under subunit 4.4.3. Please focus on pages 486-497 of the reading. This reading covers the remaining steps of object-oriented analysis including class analysis and state-transition diagram.
- Reading: The Saylor Foundation’s “Unit 4 Checkpoint”
Link: The Saylor Foundation’s “Unit 4 Checkpoint” (PDF)
Instructions: Please click on the link above, and follow the instructions to complete this assessment. When you have completed the assessment, check your answers against the “Unit 4 Checkpoint Guide to Responding” (PDF).
Completing this assessment should take approximately 30 minutes.See a broken link? Please let us know!
- Reading: The Saylor Foundation’s “Unit 4 Checkpoint”
-
Unit 5: Software Design
After requirements and analysis, a software engineer must transform the analysis model into a design model that can be implemented on a specific hardware and software environment. In this unit,we will discuss the principles of design and architecture design. Just as there are various methodologies for requirements and analysis, we will drill down from the analysis model(s) to the design model(s) following the three corresponding methodologies (i.e., data-oriented, process-oriented, and object-oriented).
Unit 5 Time Advisory show close
As you review the material in this unit, spend some time on the object-oriented methodology as it applies to software design. You will be applying this in a later unit to put it all together in a case study.
Unit 5 Learning Outcomes show close
- 5.1 Software Design Fundamentals
-
5.1.1 Design Principles (Information Hiding, Cohesion, Coupling)
- Reading: The Global Text Project’s version of Sue A. Conger’s The New Software Engineering: “Chapter 8 Process-Oriented Design”
Link: The Global Text Project’s version of Sue A. Conger’s The New Software Engineering: “Chapter 8 Process-Oriented Design” (PDF)
Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.” (Note that the titles are in alphabetical order). Click on the “PDF” hyperlink after this title to open the PDF file. Please read the section titled “Conceptual Foundations” in Chapter 8 (pages 279-280). The principles of good software design have not changed much over the years. In design, we aim to divide and conquer the problem space into smaller solvable parts to better manage complexity and, therefore, cost of development/ maintenance.
This reading should take approximately 1 hour to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: The Global Text Project’s version of Sue A. Conger’s The New Software Engineering: “Chapter 8 Process-Oriented Design”
-
5.1.2 Design Quality (Reliable, Usable, Maintainable, Perform, Testable, Secure)
- Reading: Dublin Institute of Technology: Ronan Fitzpatrick’s “Software Quality: Definitions and Strategic Issues”
Link: Dublin Institute of Technology: Ronan Fitzpatrick’s “Software Quality: Definitions and Strategic Issues” (PDF)
Instructions: Please click on the “Download” icon on the webpage to access the PDF file of “Software Quality: Definitions and Strategic Issues.” Read section 2.3 Quality Factors (pages9–18). For the vast majority, quality of software design is closely tied to quality assurance. According to Fitzpatrick, quality of software design is broader than mere quality assurance. In this article, Fitzpatrick explores the various definitions of “quality” and the quality models by McCall, Richards and Walters in 1977 and Boehm in 1978.
This reading should take approximately 2 hours to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Dublin Institute of Technology: Ronan Fitzpatrick’s “Software Quality: Definitions and Strategic Issues”
-
5.2 Architectural Design
- Web Media: Carnegie Mellon Software Engineering Institute: Paul Clement’s “Best Practices in Software Architecture” (.mp3)
Link: Carnegie Mellon Software Engineering Institute: Paul Clement’s “Best Practices in Software Architecture” (.mp3)
Instructions: Click on the “MP3” link, and listen to the “architecture” portion of the podcast (first 45 minutes). This audio introduces the fundamentals of software architecture design including runtime and non-runtime qualities, architectural building blocks, etc. The material is not intended to be a step-by-step “how to” perform architectural design (which is a huge topic) but rather to induce an appreciation for architectural design when it is done right.
This reading should take approximately 30 minutes to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Web Media: Carnegie Mellon Software Engineering Institute: Paul Clement’s “Best Practices in Software Architecture” (.mp3)
- 5.3 Software Design Approaches
-
5.3.1 Process-Oriented Design
- Reading: Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 8: Process-Oriented Design”
Link: Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 8: Process-Oriented Design” (PDF)
Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.” (Note that the titles are in alphabetical order). Click on the “PDF” hyperlink after this title to open the PDF file. Please read Chapter 8: Process-Oriented Design in its entirety (pages 279-327). The goal of design is to map the requirements of the application to a hardware and software environment. The result of process-oriented analysis—data flow diagrams, data dictionary entities etc.—is translated into detailed specifications for hardware and software. The main output of process-oriented design includes structure charts, physical databases, and program specifications. Please note that this reading covers the topics outlined in subunits 5.3.1.1 through 5.3.1.4.
This subunit should take approximately 11 hours to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 8: Process-Oriented Design”
-
5.3.1.1 Introduction
Note: This topic is covered by the reading under subunit 5.3.1. Please focus on pages 279-293 of the reading. This reading covers the concepts and terminologies for process-oriented design.
-
5.3.1.2 Transaction Analysis, Transform Analysis, and Structure Chart
Note: This topic is covered by the reading under subunit 5.3.1. Please focus on pages 293-310 of the reading. This reading covers the first three steps of process-oriented design including transaction analysis, transform analysis, and structure chart.
-
5.3.1.3 Design the Physical Database, Program Packages, and Programs
Note: This topic is covered by the reading under subunit 5.3.1. Please focus on pages 310-319 of the reading. This reading covers the next three steps in process-oriented design including physical database, program packages, and program design/specification.
-
5.3.1.4 Strengths and Weaknesses
Note: This topic is covered by the reading under subunit 5.3.1. Please focus on pages 322-324 of the reading. This reading covers the strengths and weaknesses of process-oriented design.
-
5.3.2 Data-Oriented Design
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 10: Data-Oriented Design”
Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 10: Data-Oriented Design” (PDF)
Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.” (Note that the titles are in alphabetical order). Click on the “PDF” hyperlink after this title to open the PDF file. Please read Chapter 10: Data-Oriented Design in its entirety (pages 391-458). The text uses the Martin [1990] version of Information Engineering, one of the many incarnations of Information Engineering’s data-oriented design, to illustrate data-oriented design. The result of data-oriented analysis—entity relationship diagrams, data flow diagrams, CRUD matrices etc.—is translated into screen designs, production database designs, action diagrams, procedural structures, and security plans. Compared to other approaches, data-oriented design has a strong emphasis on security, recovery, and audit controls, relating each to data and processes in the application. Note that this reading covers topics outlined in subunits 5.3.2.1 through 5.3.2.5.
This subunit should take approximately 16 hours to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 10: Data-Oriented Design”
-
5.3.2.1 Introduction
Note: This topic is covered by the reading under subunit 5.3.2. Please focus on pages 391-401 of the reading. This reading covers the concepts and terminologies for data-oriented design.
-
5.3.2.2 Analyze Data Use and Distribution
Note: This topic is covered by the reading under subunit 5.3.2. Please focus on pages 401-410 of the reading. This reading covers the first step in data-oriented design: analyze the data
-
5.3.2.3 Define Security, Recovery, and Audit Controls
Note: This topic is covered by the reading under subunit 5.3.2. Please focus on 410-424 of the reading. This reading covers the second step in data-oriented design: defining system controls.
-
5.3.2.4 Develop Action Diagram
Note: This topic is covered by the reading under subunit 5.3.2. Please focus on pages 424-438 of the reading. This reading covers the third step in data-oriented design: the action diagram. The action diagram shows the processing details for an application in a structured format, which can be translated into programs and modules.
-
5.3.2.5 Define Menu Structure and Dialogue Flow: Plan Hardware and Software and Testing
Note: This topic is covered by the reading under subunit 5.3.2. Please focus on pages 438-453 of the reading. This reading covers the last steps in data-oriented design: menu structure and dialogue flow as well as hardware/software installation and testing.
-
5.3.3 Object-Oriented Design
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 12: Object-Oriented Design”
Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 12: Object-Oriented Design” (PDF)
Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.” (Note that the titles are in alphabetical order). Click on the “PDF” hyperlink after this title to open the PDF file. Please Chapter 12: Object-Oriented Design in its entirety (pages 501-553). The text uses the Booch methodology [1991] to illustrate object-oriented design. The result of object-oriented analysis—class diagrams etc.—is translated into time-event diagrams, Booch diagrams, message communications, service objects, and process diagrams. Collectively, they constitute a set of holistic specifications to effectively allocate functionality over program modules at the lowest level as well as multiprocessor configurations at the highest level. As discussed in subunit 4.3.3, the Booch notation has been unified with other object-oriented notations (i.e., Rambaugh and Jacobsen) into Unified Modeling Language UML. In Unit 8, we will look at another example of object-oriented analysis and design using the UML notation. Therefore, you may skim this chapter quickly to gain familiarity with OOD, which you will apply to Unit 8. Note this reading covers the topics outlined in subunits 5.3.3.1 through 5.3.3.3.
This subunit should take approximately 5.5 hours to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 12: Object-Oriented Design”
-
5.3.3.1 Introduction
Note: This topic is covered by the reading under subunit 5.3.3. Please focus on pages 501-509 of the reading. This reading covers the concepts and terminologies for object-oriented design.
-
5.3.3.2 Allocate Objects to Four Domains, Time-Order Event Diagrams, and Service Objects
Note: This topic is covered by the reading under subunit 5.3.3. Please focus on pages 509-521 of the reading. This reading covers the first three steps of Booch’s object-oriented design: from allocation of objects across four domains to definition of service objects.
-
5.3.3.3 Develop Booch Diagram, Message Communications, Process Diagram, Package Specifications, and Prototype
Note: This topic is covered by the reading under subunit 5.3.3. Please focus on pages 521-534 of the reading. This reading covers the remaining steps of Booch’s object-oriented design: from Booch diagram, message communications, process diagram, package specifications to prototyping the application.
- Assessment: The Saylor Foundation’s “Unit 5 Checkpoint”
Link: The Saylor Foundation’s “Unit 5 Checkpoint” (PDF)
Instructions: Please click on the link above, and follow the instructions to complete this assessment. When you have completed the assessment, check your answers against the “Unit 5 Checkpoint Guide to Responding” (PDF).
Completing this assessment should take approximately 30-60 minutes.See a broken link? Please let us know!
- Assessment: The Saylor Foundation’s “Unit 5 Checkpoint”
-
Unit 6: Software Testing
Testing is the process of finding errors and is one of the last activities in the software life cycle. In testing, we look to validate that software requirements analysis, software design, and software implementation mesh together correctly to deliver a software system that performs as expected, functionally and non-functionally.
Unit 6 Time Advisory show close
As you review this unit, note the three levels of test plan: unit, integration, and system. Each of these levels of test plan assures the quality of the overall software from varying levels of granularity. In your own practice as a software engineer, be sure to incorporate these levels of testing as this is the last stop before the software goes out the door representing your professional work and code of ethics.
Unit 6 Learning Outcomes show close
-
6.1 Software Testing Terminologies
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 17: Testing and Quality Assurance”
Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 17: Testing and Quality Assurance” (PDF)
Instructions: Please read the section titled “Testing Terminology” in Chapter 17 (pages 690-694). In this unit, you have a quick introduction to many terminologies used in the science (and art) of testing. Do not be concerned if you do not understand them fully. We will go back and examine these topics in more depth; subunit 6.2 will look more closely at test strategies (i.e., white-box, black-box, top-down and bottom-up), and subunit 6.3 will examine more closely levels of testing (i.e., unit test, integration test and system test).
This reading should take approximately 1.5 hours to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 17: Testing and Quality Assurance”
-
6.2 Software Testing Strategies
- Reading: Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 17: Testing and Quality Assurance”
Link: Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 17: Testing and Quality Assurance” (PDF)
Instructions: In this subunit, you will learn about two kinds of testing strategies: how the logic is tested (i.e., black-box and white-box testing) and how the testing is conducted (i.e., top-down and bottom-up testing). If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.” (Note that the titles are in alphabetical order). Click on the “PDF” hyperlink after this title to open the PDF file. Please read the section titled “Testing Strategies” in Chapter 17 on pages 694-706. This reading applies to the next four subunits, 6.2.1 through 6.2.4: Black-Box Testing, White-Box Testing, Top-Down Testing, and Bottom-Up Testing.
This subunit should take approximately 3 hours to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 17: Testing and Quality Assurance”
-
6.2.1 Black-Box Testing
Note: This topic is covered in the reading under subunit 6.2. Please focus on the section titled “Black-Box Testing” on pages 695-697 of the reading.
-
6.2.2 White-Box Testing
Note: This topic is covered in the reading under subunit 6.2. Please focus on the section titled “White-Box Testing” on pages 697-699 of the reading.
-
6.2.3 Top-Down Testing
Note: This topic is covered in the reading under subunit 6.2. Please focus on the section titled “Top-Down Testing” on pages 699-702 of the reading.
-
6.2.4 Bottom-Up Testing
Note: This topic is covered in the reading under subunit 6.2. Please focus on the section titled “Bottom-Up Testing” on page 702 of the reading.
-
6.3 Software Test Coverage
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 17: Testing and Quality Assurance”
Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 17: Testing and Quality Assurance” (PDF)
Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.” (Note that the titles are in alphabetical order). Click on the “PDF” hyperlink after this title to open the PDF file. Please read the section titled “Test Plan for ABC Video Order Processing” in Chapter 17 (pages 706-732). This reading applies to the topics outlined in subunits 6.3.1 through 6.3.3: Unit Testing, Integration Testing, and System Testing. In this subunit, see how ABC Video designs testing to validate that specification, design, and coding mesh with functional and non-functional requirements of the system.
This subunit should take approximately 4 hours to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 17: Testing and Quality Assurance”
-
6.3.1 Unit Testing
Note: This topic is covered in the reading under subunit 6.3. Please focus on the section titled “Unit Testing” on pages 710-718 of the reading.
-
6.3.2 Integration Testing
Note: This topic is covered in the reading under subunit 6.3. Please focus on the section titled “Subsystem or Integration Testing” on pages 718-723 of the reading.
-
6.3.3 System Testing
Note: This topic is covered in the reading under subunit 6.3. Please focus on the section titled “System and Quality Assurance Testing” on pages 723-729 of the reading.
- Assessment: The Saylor Foundation’s “Unit 6 Checkpoint”
Link: The Saylor Foundation’s “Unit 6 Checkpoint” (PDF)
Instructions: Please click on the link above, and follow the instructions to complete this assessment. When you have completed the assessment, check your answers against the “Unit 6 Checkpoint Guide to Responding” (PDF).
Completing this assessment should take approximately 30-60 minutes.See a broken link? Please let us know!
- Assessment: The Saylor Foundation’s “Unit 6 Checkpoint”
-
Unit 7: Project Management
Project Management in a software engineering environment is unique because of the technical aspects of a software project. The project manager’s role is different from that of the software engineer’s. While software engineers are generally accountable for the technical aspects of a project, the project manager is accountable for organizational aspects.
Unit 7 Time Advisory show close
As you review the materials of the unit, try to connect this unit with a prior unit of Software Development Life Cycle. You will see that the success of an SDLC depends on people, process and product. Project Management is the glue that holds these aspects together.
Unit 7 Learning Outcomes show close
-
7.1 Project Management
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 3: Project Management”
Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 3: Project Management” (PDF)
Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.” (Note that the titles are in alphabetical order). Click on the “PDF” hyperlink after this title to open the PDF file. Please Chapter 3: Project Management in its entirety (pages 57-82). This reading covers the topics outlined in subunits 7.1.1 through 7.1.3: Organization Liaison, Personnel Management and Monitor and Control. As discussed, the software engineer and the project manager provide complementary skills and work collaboratively on shared activities. The three main activities of the project manager are organizational liaison, personnel management, and monitor and control.
This subunit should take approximately 3 hours to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 3: Project Management”
-
7.1.1 Organization Liaison
Note: This topic is covered in the reading under subunit 7.1. Please focus on the section titled “Liaison” on pages 67-70 of the reading. The project manager is the go between for the technical team and agents who are not members of the technical team (e.g. project sponsor, user, IS management, vendors etc.).
-
7.1.2 Personnel Management
Note: This topic is covered in the reading under subunit 7.1. Please focus on the section titled “Personnel Management” on pages 70-74 of the reading. Personnel management includes working with Personnel (i.e. Human Resources) to hire, fire, and professionally develop employees.
-
7.1.3 Monitor and Control
Note: This topic is covered in the reading under subunit 7.1. Please focus on the section titled “Monitor and Control” on pages 74-79 of the reading. Project monitoring involves tracking project progress relative to budget; project control means implementing changes when progress is not satisfactory (e.g. training, revising project plans etc.).
-
7.2 Change Management
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 18: Change Management”
Link: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 18: Change Management” (PDF)
Instructions: If you have not already opened and saved the PDF file, scroll down the webpage to the title “The New Software Engineering.” (Note that the titles are in alphabetical order). Click on the “PDF” hyperlink after this title to open the PDF file. Please read Chapter 18: Change Management in its entirety (pages 735-764). This reading covers the topics outlined in subunits 7.2.1 through 7.2.5. A critical component of project monitoring and control is change management. As business requirements and operating environments change all the time, the project manager has to manage change throughout the software development cycle from acquisition, supply, development, operation to maintenance. The guiding principles, techniques, and tools for change management are discussed in this chapter.
This subunit should take approximately 3 hours to complete.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: The Global Text Project’s version of Sue A. Conger’s “The New Software Engineering:” “Chapter 18: Change Management”
-
7.2.1 Designing for Maintenance
Note: This topic is covered in the reading under subunit 7.2. Please focus on the section titled “Designing for Maintenance” on pages 735-741 of the reading. Applications that are designed with change in mind (i.e., flexibility) are easier and less costly to maintain.
-
7.2.2 Application Change Management
Note: This topic is covered in the reading under subunit 7.2. Please focus on the section titled “Application Change Management” on pages 741-749 of the reading. Applications frequently change because of changing business or technical environments. By establishing application change management procedures, the changes may be tracked, reviewed, and prioritized.
-
7.2.3 Software Management
Note: This topic is covered in the reading under subunit 7.2. Please focus on the section titled “Software Management” on pages 749-751 of the reading. A core concept in software management is to decide whether to “maintain” or to “retire” the application. When an application no longer works or when maintenance cost is high, the application becomes a potential candidate for retiring.
-
7.2.4 Configuration Management
Note: This topic is covered in the reading under subunit 7.2. Please focus on the section titled “Configuration Management” on pages 751-756 of the reading. Configuration management is the identification, organization, and control of software changes. Software changes are developed over a fixed version of working code (AKA “baseline” code). This is released and becomes the new “baseline” for the next set of software changes.
-
7.2.5 Automated Tools
Note: This topic is covered in the reading under subunit 7.2. Please focus on the section titled “Automated Tools for Change Management” on pages 756-759 of the reading. There is a variety of automated tools that can facilitate and increase productivity for change management. These include collaborative work tools, documentation tools, reverse engineering tools, and configuration management tools.
- Assessment: The Saylor Foundation’s “Unit 7 Checkpoint”
Link: The Saylor Foundation’s “Unit 7 Checkpoint” (PDF)
Instructions: Please click on the link above, and follow the instructions to complete this assessment. When you have completed the assessment, check your answers against the “Unit 7 Checkpoint Guide to Responding” (PDF).
Completing this assessment should take approximately 30-60 minutes.See a broken link? Please let us know!
- Assessment: The Saylor Foundation’s “Unit 7 Checkpoint”
-
Unit 8: Putting It Together: A Case Study
This unit pulls together the object-oriented methodology in software requirements and analysis (i.e. Unit 4) as well as software design (i.e. Unit 5). You will apply UML to demonstrate your understanding of the software development life cycle given a set of user requirements. You will also have the opportunity to apply Software Testing techniques to assess the quality of the finished project.
Unit 8 Time Advisory show close
Unit 8 Learning Outcomes show close
-
8.1 Preparation
- Reading: CiteSeer: Sheldon, Jerath, Kwon, and Baik’s “Case Study: Implementing a Web Based Auction System Using UML and Component-Based Programming”
Link: CiteSeer: Sheldon, Jerath, Kwon, and Baik’s “Case Study: Implementing a Web Based Auction System Using UML and Component-Based Programming” (PDF)
Instructions: To access the text, click on the PDF icon to download the document (6 pages). Read and evaluate this case study for creating a web auction site. Note each UML diagram and its purpose. Imagine that you are a softwareengineer and the project manager that will oversee the implementation of the auction site. What changes will be necessary to test and implement the system on the most current software and hardware available to you? Please also note that there will be questions on the Final Exam in regard to this case study.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.See a broken link? Please let us know!
- Reading: CiteSeer: Sheldon, Jerath, Kwon, and Baik’s “Case Study: Implementing a Web Based Auction System Using UML and Component-Based Programming”
-
8.2 Design Modification and Quality Control
- Activity: The Saylor Foundation’s “Design Modification and Quality Control Activity”
Link: The Saylor Foundation’s “Design Modification and Quality Control Activity” (PDF)
Instructions: Please read the instructions on the document linked above. Note that this activity pertains to the case study that you read about in subunit 8.1.
Terms of Use: Please respect the copyright and terms of use displayed on the webpage above.
See a broken link? Please let us know!
- Activity: The Saylor Foundation’s “Design Modification and Quality Control Activity”
-
Final Exam
- Final Exam: The Saylor Foundation's CS302 Final Exam
Link: The Saylor Foundation's CS302 Final Exam
Instructions: You must be logged into your Saylor Foundation School account in order to access this exam. If you do not yet have an account, you will be able to create one, free of charge, after clicking the link.See a broken link? Please let us know!
- Final Exam: The Saylor Foundation's CS302 Final Exam
Questions? Consult the FAQs!


