Download presentation
Presentation is loading. Please wait.
1
CSCI 360: Software Architecture & Design
Dr. X
2
Outline Recap previous class Iterative Development Case Studies
Github!
3
Architecture and Design
Architecture: the complex or carefully designed structure of something. (dictionary.com) Design: purpose, planning, or intention that exists or is thought to exist behind an action, fact, or material object. (dictionary.com)
4
OOAD OOA: find and describe objects in the problem domain.
OOD: define objects and how they collaborate to fulfil requirements. OOAD Steps: Define Use Cases Define Domain Model Define Interaction Diagrams Define Design Class Diagrams Use case: stories, scenarios of how product will be used Domain model: noteworthy concepts or objects Interaction: sequence
5
UML as a sketch
6
UML as a sketch Is visual modeling a good thing and why?
7
From Design to Implementation
Analysis investigation of the problem Design logical solution Construction code public class Book { public void print(); private String title; } Book Book (concept) title print() Domain concept Representation in analysis of concepts Representation in an object-oriented programming language.
8
The Unified Process (UP)
A process is a set of partially ordered steps intended to reach a goal. What is the goal in Software Engineering? Based on the above definition, what is the software process? The Unified Process (UP) is a process for building object-oriented systems. What is the goal of UP? Software Engineering Goals: Software engineering is the application of engineering to the development of software in a systematic method Readability Correctness Reliability Reusability Extensibility Flexibility Efficiency What is a SW process? In software engineering, a software development process is the process of dividing software development work into distinct phases to improve design, product management, and project management. It is also known as a software development life cycle. What is the goal of UP? The goal of the UP is to enable the production of high quality software that meets users needs within predictable schedules and budgets.
9
Iterative Development
[iteration N] Requirements – Analysis - Design- Implementation - Testing [iteration N+1] Requirements – Analysis - Design- Implementation - Testing Feedback from iteration N leads to refinement and adaptation of the requirements and design in iteration N+1. The system grows incrementally.
10
Iterative Development
How do we organize development? What does an iteration represent? What is the input of an iteration? What is the output of an iteration? Why should we as developers embrace iterative development and change? Is the output of an iteration a throwaway prototype or a production grade subset of a system? If you find yourself in an iterative project where you try to define all the requirements and UML models before programming, then you have fallen in the trap of waterfall thinking! Change is the constant in Sw projects Feedback, adaptation to marketplace and change! Agility: rapid and flexible response to change! The output of an iteration is not an experimental prototype but a production subset of the final system. Each iteration tackles new requirements and incrementally extends the system. An iteration may occasionally revisit existing software and improve it Stakeholders usually have changing requirements. Each iteration involves choosing a small subset of the requirements and quickly design, implement and testing them. This leads to rapid feedback, and an opportunity to modify or adapt understanding of the requirements or design.
11
Iteration Length and Timeboxing
What is the recommendation of UP for iteration length and why? What is timeboxing? How does it manage change or lack of enough time? The UP recommends short iteration lengths to allow for rapid feedback and adaptation. Long iterations increase project risk. Iterations are fixed in length (timeboxed).If meeting deadline seems to be difficult, then remove tasks or requirements from the iteration and include them in a future iteration. The UP recommends that an iteration should be between two and six weeks in duration.
12
Phases of the Unified Process
Inception Elaboration Construction Transition time A UP project organizes the work and iterations across four major phases: Inception - Define the scope of project. Elaboration - Plan project, specify features, baseline architecture. Construction - Build the product Transition - Transition the product into end user community Inception – vision Elaboration – model Construction – coding Transition - testing
13
Iterations and Milestones
Inception Elaboration Construction Transition What is the focus of a release or iteration? What does a milestone review provide? What marks the end of an iteration? Preliminary Iteration Iter. #1 Iter. #2 Milestone Release Final production release Always remember that a phase can have several iterations in it. An iteration does not contain any phases! Each phase and iteration has some risk mitigation focus, and concludes with a well-defined milestone. The milestone review provides a point in time to assess how well key goals have been met and whether the project needs to be restructured in any way to proceed. The end of each iteration is a minor release, a stable executable subset of the final product.
14
Preliminary Iteration(s)
The UP Disciplines Phases Inception Elaboration Construction Transition Process Disciplines Business Modeling Requirements Analysis & Design Implementation Test Deployment Each iteration has a mix of disciplines (requirements, domain, design, code) and so a phase will have several repetitions of a little life cycle. However the mix of disciplines tends to be different in each phase. The disciplines are like tools that are used in many phases. However in the early phases we normally do more business modeling and requirements than Design and Implementation. In later phases this is reversed. Supporting Disciplines Configuration Mgmt Management Environment Preliminary Iteration(s) Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Iterations
15
Preliminary Iteration(s)
The UP Disciplines In an iteration you walk through all disciplines. Phases Process Disciplines Inception Elaboration Construction Transition Business Modeling Requirements Analysis & Design Implementation Test Deployment Supporting Disciplines Configuration Mgmt Management Environment Preliminary Iteration(s) Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Iterations
16
Preliminary Iteration(s)
The UP Disciplines Focus of this course. Phases Process Disciplines Inception Elaboration Construction Transition Business Modeling Requirements Analysis & Design Implementation Test Deployment Supporting Disciplines Although an iteration includes work in most disciplines, the relative effort and emphasis change over time. Early iterations tend to apply greater emphasis to requirements and design, and later ones less so. Figure illustrations are suggestive, not literal. Note that activities and artifacts are optional (except code!) Developers select those artifacts that address their particular needs. Configuration Mgmt Management Environment Preliminary Iteration(s) Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Iterations
17
Advantages of an Iterative Process
Reduce risks Risks are identified early, progress is easier to see. Get a robust architecture Architecture can be assessed and improve early. Handle evolving requirements Users provide feedback to operational systems. Responding to feedback is an incremental change. Allow for changes System can adapt to problems Attain early learning Everyone obtains an understanding of the different workflows early on.
18
Agile cake Would you plan to eat it one layer at a time: (1) all the Requirements, (2)all the Design, (3) Code it all and then (4) do the tests
19
Agile Manifesto Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
20
Fig. 3.1
21
Case Study: NextGen POS System
22
Fig. 3.2
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.