软件设计分析与建模复习笔记
文章目录
Introduction
Chapter1 Object-Oriented Anaysis and Design
1. Analysis vs Design vs Implement
- Analysis emphasizes and investigation of the problem and requirements, rather than a solution. (Do the right thing)
- Design emphasizes a conceptual solution (in software and hardware) that fulfills the requirements, rather than its implementation. (Do the thing right)
- Implement implements the design solution using programming language.
2. Object-Oriented Analysis and Design
- During object-oriented analysis there is an emphasis on finding and describing the objects or concepts (not software object or class) in the problem domain.
- During object-oriented analysis there is an emphasis on defining software objects and how they collaborate to fulfill the requirements.
3. A few steps in analysis and design
- Define use cases. (Requirements analysis may include stories or scenarios of how people use the application; these can be written as use cases.)
- Define a domain model. (Note that a domain model is not a description of software objects; it is a visualization of the the concepts or mental models of a real-world domain. Thus, it has also been called a conceptual object model.)
- Assign object responsibilities and draw interaction diagrams.
- Define design class diagrams.
4. What is the UML?
- The Unified Modeling Language is a visual language for specifying, constructing and documenting the artifacts of systems.
- Model software systems in a number of diagrams (graphical notations to express the OOA/D of software).
- Three ways to apply UML:
- UML as sketch
- UML as blueprint
- UML as programming language
Chapter2. Iterative, Evolutionary, and Agile
1. Software development process
- Definition: describes an approach to building, deploying, and possibly maintaining software.
- Software process is software that is executed by a human-made virtual machine.
2. UP
-
popular iterative software development process for building object-oriented systems.
-
Sample structure to apply OOA/D and UML
-
central idea of UP
- short time-boxed iterative, evolutionary, and adaptive development
-
UP Phases
- Inception: approximate vision, business cases, scope, vague estimates
- Elaboration: refined vision, iterative implementation of the core architecture, resolution of hign risks, identification of most requirements and scope, more realistic estimates
- Construction: iterative implemention of the remaining lower risk and easier elements, and preparation for deployment
- Transition: beta tests, deployment
-
UP Disciplines
- Disciplines, a set of activities (and related artifacts) in one subject area, such as the activities within requirements analysis.
- including - nine
- Business modeling
- Requirement
- Design
- Implement
- Test
- Deployment
- Configure and change management
- Project management
- Evironment
3. Waterfall lifecycle
- Waterfall is a linear approach to software development.
- attempt to define (in detail) all or most of the requirements before programming.
4. Iterative and Evolutionary Development
- development is organized into a series of short, fixed-length (for example, three-week) mini-projects called iterations.
- successive enlargement and refinement of a system through multiple iterations.
5. Agile Methods
- not possible to exactly define agile methods
- short timeboxed iterations with evolutionary refinement of plans, requirements, and design is a basic practice the methods.
- The Agile Manifesto
- Individuals and interactions over processed and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
- The Agile Principles
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software
- Welcome changing requirements, even late in development
- Deliver working software frequently
- Business people and developers must work together daily throughout the project
- The most efficient and effective method is face-to-face conversation.
- Working software is the primary measure of progress
- Continuous attention to technical excellence and good design
- Simplicity — the art of maximizing the amount of work not done is essential
- The best architectures, requirements, and designs emerge from self-organizing teams
- …
6. Agile UP
- adopted and applied in the spirit of agile
- Prefer a small set of UP activities and artifacts
- Requirements and designs are not completed before implementation. They adaptively emerge through a series of iterations
- No detailed plan for the entire project
- TDD
- Apply the UML with agile modeling practices
7. Other related concept
- Risk-Driven and Client-Driven
- early iterations are chosen to identify and drive down the highest risks, and build visible features that client cares most about
- early iterations docus on building, testing, and stabilizing the core architecture
- Test drive development (TDD)
- Key idea of agile method
- Write test code first, then functional code