35 stages of software development process Requirements analysis and definition:Establish the application’s goals and constraints in consultation with usersDesign:Establish the system’s architectureImplementation and unit testing:Realize the design as a set of programs or program unitsUnit testing verifies that each unit meets its specificationIntegration and system testing:Integrate the program units and test as a complete systemMaintenance:Correct errors, improve implementation, and enhance the system’s services as new requirements are discovered
4What is the primary driver of software costs? Most money and effort (82%) spent in testing and maintenanceBut: 85% of errors are introduced during requirements analysis and design3%8%7%15%67%Requirements %Design %Implementation -- 7%Testing %Maintenance %Software Cost
5Waterfall model of software process A sequential software development model (a process for the creation of software) in which development is seen as flowing steadily downwards (like a waterfall) through the phases of requirements analysis, design, implementation, testing (validation), integration, and maintenance.
6Waterfall modelProgress flows from the top to the bottom, like a waterfall.
7V model of software process An extension of the waterfall model. Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape. The V-Model demonstrates the relationships between each phase of the development life cycle and its associated phase of testing.
9Prototyping of software process This model adds prototyping as sub-processA prototype is a partially developed product that enables customers and developers to examine some aspect of a proposed system and decide if it is suitable for a finished productWhy add prototypes to the life cycle?Used to explore the risky aspects of the system:Risk of developing the “wrong” system (what customer doesn’t want), can be a user interface without functionalityOther technical risks – e.g. performance, using a new technology, alternative algorithms, etc.Prototype may be thrown away or evolve into product
10Rational Unified Process (RUP) Developed by “three amigos” at Rational Software (IBM)Grady Booch, Ivar Jacobson, and Jim RumbaughUnified Modeling Language (UML) is a set of graphical and linguistic notations for modeling systems, not a process or methodThe three amigos also developed Rational Unified Process (RUP)You don’t have to use RUP to use UMLInterestingly different from the traditional waterfall modelHighly iterative and incremental processSoftware product is not released in one big bang at end of projectInstead, developed and released in pieces (prototypes, partial releases, beta, etc.)
11How do traditional stages iterate? Workflows look traditional, but they iterate in four phases
12What does iteration imply about RUP? How can iterations reduce risk or reveal problems?
14What is UML? UML stands for Unified Modeling Language In the field of software engineering, UML is a standardized specification language for object modeling.UML is a general-purpose modeling language that includes a graphical notation used to create an abstract model of a system, referred to as a UML model.
16What is UML?Is a language. It is not simply a notation for drawing diagrams, but a complete language for capturing knowledge(semantics) about a subject and expressing knowledge(syntax) regarding the subject for the purpose of communication.Applies to modeling and systems. Modeling involves a focus on understanding a subject (system) and capturing and being able to communicated in this knowledge.It is the result of unifying the information systems and technology industry’s best engineering practices (principals, techniques, methods and tools).
17Unified Modeling Language (UML) used for both database and software modelingversion 1.1 was adopted in November 1997 by the Object Management Group (OMG) as a standard language for object-oriented analysis and designInitially based on a combination of the Booch, OMT (Object Modeling Technique) and OOSE (Object-Oriented Software Engineering) methods, UML was refined and extended by a consortium of several companies, and is undergoing minor revisions by the OMG Revision Task Force.Ivar Jacobson is known as the father of Use Cases.
18Topics on UML1. Structural Modeling with UML Structural model: a view of an system that emphasizes the structure of the objects, including their classes, relationships, attributes and operations. 2. Use Case Modeling with UML Use case model: a view of a system that emphasizes the behavior as it appears to outside users. A use case model partitions system functionality into transactions (‘use cases’) that are meaningful to users (‘actors’).
192.1 Structural Modeling What is structural modeling? Core elements Core relationshipsStructural diagram
20What is structural modeling? Structural model: a view of an system that emphasizes the structure of the objects, including their classes, relationships, attributes and operations.
25Structural Diagram Tour Show the static structure of the modelthe entities that exist (e.g., classes, interfaces, components, nodes)internal structurerelationship to other entitiesDo not showtemporal informationKindsstatic structural diagramsclass diagramobject diagramimplementation diagramscomponent diagramdeployment diagram
26Static Structural Diagrams Shows a graph of class elements connected by static relationships.kindsclass diagram: class viewobject diagram: instance view
39Implementation Diagrams Show aspects of model implementation, including source code structure and run-time implementation structureKindscomponent diagramdeployment diagram
40Component DiagramShows the organizations and dependencies among software componentsComponents may bespecified by classifiers (e.g., implementation classes)implemented by artifacts (e.g., binary, executable, or script files)
41Component Diagram Example Order System component depends both on the Customer Repository and Inventory System components
42Deployment DiagramModels the physical deployment of artifacts (software components) on nodes (hardware components)Deployment diagrams are used to show which components may run on which nodes
43Deployment Diagram Example Deployment Diagram of Order Management System(a web based application is deployed in a clustered environment using server 1, 2, and 3.)
442.2 Use Case Modeling What is use case modeling? Core elements Core relationshipsDiagram tourExample: Online HR System
45What is use case modeling? use case model: a view of a system that emphasizes the behavior as it appears to outside users. A use case model partitions system functionality into transactions (‘use cases’) that are meaningful to users (‘actors’).
53Online HR System: Update Benefits Use Case Actors: employee, employee account db, healthcare plan system, insurance plan systemPreconditions:Employee has logged on to the system and selected ‘update benefits’optionBasic courseSystem retrieves employee account from employee account dbSystem asks employee to select medical plan type; include UpdateMedical PlanSystem asks employee to select dental plan type; include Update DentalPlan…Alternative coursesIf health plan is not available in the employee’s area the employee isinformed and asked to select another plan...
54Ideas to Take AwayUML is effective for modeling large, complex software systemsIt is simple to learn for most developers, but provides advanced features for expert analysts, designers and architectsIt can specify systems in an implementation-independent mannerStructural modeling specifies a skeleton that can be refined and extended with additional structure and behaviorUse case modeling specifies the functional requirements of system in an object-oriented manner