需求分析第一章–软件过程
Topics
- The nature of software development
- System planning
- Systems for three management levels
- The software development lifecycle
- Development models and methods
- Problem statements for case studies (separate set of slides)
1.The nature of software development
1.1The essence of software development
The essence (本质)of software development:
defined by the issues inherent in the software itself: software is a product of a
creative act (not a result of a repetitive act of manufacturing)
software development invariants (constants):
- complexity 软件规模,构件间依赖
- conformity,(一致)与其他软件,硬件
- changeability(需求)
- invisibility.(源码)输出可见
本质不可改变
1.2The accidents of software development
‘Accidental difficulties’ (variables) due to software production practices ,amenable to human intervention
- social system 由人造,被人用
- adaptiveness (supportability) is the challenge
- adaptiveness = understandability + maintainability + scalability
(extensibility)
意外不会增加软件产品的复杂性(????)
意外因素
- Stakeholders
- Process
- Modeling
Stakeholders
- Customers (users and system owners)
- Developers (analysts, designers, programmers)
Information systems are social systems developed by people (developers) for
people (customers)
Process
Defines activities and organizational procedures used in software production andmaintenance
A process model:
- states an order for carrying out activities;
- specifies what development artifacts are to be delivered and when;
- assigns activities and artifacts to developers;
- offers criteria for monitoring a project’s progress,for measuring the outcomes, and for planning future projects
Is not susceptible to standardization
ITIL, CMM and ISO 9000 are process standards(how to do)
-
Iterative and incremental process
– An iterative process is one that involves managing a stream of executable releases.
– An incremental process is one that involves the continuous integration of the system’s architecture to produce these releases, with each new release embodyingincremental improvements over the other.’ (RUP)- examples:
- the spiral model
- the Rational Unified Process (RUP)
- Model Driven Architecture (MDA)
- the agile development process
- aspect-oriented software development
Iterative and incremental development
- must be planned and controlled, and
- must conform to a pre-defined architectural design framework (meta-architecture)
- examples:
-
Capability maturity model
- 过程评估和改进,软件专用
- 过程评估和改进,软件专用
-
ISO 9000 family of quality standards
- 质量管理和过程,只关注结果(质量),apply to any industry and all types of businesses
- premise:
- if the process is right then the process outcome (product or service) will also be right
- but… the ISO standards do not enforce or specify processes , the standards provide models of what must be accomplished, not how activities must be performed
-
ITIL framework( IT Infrastructure Library) IT 基础架构库
- IT as commodity ,solution ,service
- 用于IT service management,处理方案交付和管理
- Efficient and effective use of the four Ps
- people, processes, products (tools and technology) and partners (suppliers, vendors and outsourcing organizations)
- Efficient and effective use of the four Ps
- using ITIL solution management as a Continuous Service Improvement Programme (CSIP)
-
COBIT framework
- COBIT (Control OBjectives for Information and related Technology) is a compliance framework and addresses the control side of the solution management
- product standard (what to do)
- 针对高级IT经理,高级业务经理,不是软件开发者
- COBIT groups IT-related efforts into four domains:
- Plan and Organize
- Acquire and Implement,
- Deliver and Support, and
- Monitor
model
Modeling artifacts have to be
- communicated (language) [‘The Unified Modeling Language (UML)]
- documented (tools) [Computer-Assisted Software Engineering (CASE)]
UML
UML is independent of
- any software development process
- implementation technologies
- just need object-oriented
The UML models can be categorized into thre groups:
- State models :describe the static data structures
- Behavior models : describe object collaborations
- State change models: describe the allowed states for the system over time
CASE Process improvement
Process improvement is much more than the introduction of new tools, methods and techniques
- may be bad for low level of process
CASE tool would always bring personal productivity and quality improvements to individual developers
1.3 Development or integration
Integration approaches
- Information- and/or portal-oriented
- Interface-oriented
- Process-oriented
2.System planning
2.1 overview
System planning can be carried out in a number of different ways:
- SWOT – Strengths, Weaknesses, Opportunities,Threats
- VCM – Value Chain Model
- BPR – Business Process Reengineering
- Information System Architecture (ISA)
All system planning approaches have an important common denominator – they are concerned with effectiveness rather than efficiency
更关心效果(做正确的事)而不是效率(做事正确)
2.2 SWTO
- s :strong,w :weak,o:opportunites,t:threat
- from top to down
2.3 VCM(Value Chain Model)
- analyzing the full chain of activities in an organization – from raw materials to final products
- The question is: which value chain configurations will yield the greatest competitive advantage?
Organizational functions are categorized into:
- primary activities
- they create or add value to a final product
- support activities
- they are essential but they do not enrich the product
2.4 BPR approach(Business Process Reengineering)
-
base promise :organizations must reinvent themselves and abandon the functional decomposition, hierarchical structures and operational principles that they are now using
- Most contemporary organizations are structured in vertical units focused on functions, products or regions
- No one employee or department is responsible for a business process which is defined as ‘. . . a collection of activities that takes one or more kinds of input and creates an output that is of value to the customer’
- ‘The most visible difference between a process enterprise and a traditional organization is the existence of process owners
-
The main objective of BPR is to radically redesign business processes in an organization (hence, process redesign)
- The major hurdle lies in the need to embed a horizontal process
in a traditional vertical management structure - BPR initiative requires changing the organization around the
development teams as the primary organizational units - These teams are responsible for one or more end-to-end business
processes
- The major hurdle lies in the need to embed a horizontal process
2.5 ISA approach (Information Systems Architecture)
- buttom -up
- The ISA framework is represented as a table of thirty cells organized into five rows (labeled 1 through 5) and six columns (labeled A through F)
- Rows represent the different perspectives used in the construction of a complex engineering product, such as an information system , five major ‘players in the game’
- Columns represent the six different descriptions or architectural models that each of the participants engages with
\ | 事由什么构成(数据) | 业务过程 | 处理业务的构建位置 | 用户 | 事件和状态 | 企业动机 |
---|---|---|---|---|---|---|
规划者(确定范围) | ||||||
所有者(概念模型) | ||||||
设计者(物理模型) | ||||||
建造者(技术解决方案) | ||||||
承包者(系统构件) |
3 Systems for three management levels
3.1overview
- strategic
- tactical
- operational
3.2 Transactional processing systems
- Transaction – a logical unit of work that accomplishes a particular business task and guarantees the integrity of the database after the task completes
- Database technology
- Concurrency control
- Recovery
- Business logic (vs application/control logic)
- Security
3.3 Analytical processing systems
- Analysis of pre-existing historical data to facilitate decision making
- Data warehouse technology(数据仓库)
- Summarizing
- Packaging
- Partitioning
- Data marts(数据市场)
- Data webhouse
3.4Knowledge processing systems
Knowledge management – to help organizations discover, organize, distribute and apply the knowledge encoded in information systems
- Data mining
- Association
- Classification
- Clustering
- AI techniques ,predictive rather than retrospective models
4The software development lifecycle
4.1overview
The lifecycle identifies:
- the applied modeling approach
- the exact phases along which the software product is transformed – from initial inception to phasing it out
- the method (methodology) and associated development process
4.2 Development approach
Software has become much more interactive
- structured approach (1980)
- based on DFD(data flow diagram) ,ERD,
- process is centric
- non iterative and incremental
- inflexible
- does not support the reuse
- Object-oriented approach(1990)
- Data-centric
- Matches the event-driven programming demanded by interactive GUI-based applications
- Problems related to OO development
- The semantic gap between the object-oriented modeling artifacts and the implementation of the data-centric artifacts with relational database technology can be significant
- Project management is more difficult
- Object solutions are significantly more complex than old-style structured systems
4.3 Lifecycle phases
- Business Analysis
- functional and non-functional requirements
- System Design
- architectural design
- detailed design
- Implementation
- coding
- round-trip engineering
- Integration and Deployment
- Operation and Maintenance
Business analysis/requirements analysis
- Activity of determining and specifying customer requirements
- business analyst determines requirements
- system analyst specifies (or models) requirements
- Business analysis is linked to business process reengineering (BPR)
Requirements determination
- Requirement – ‘a statement of a system service or constraint
- Service statement
- a business rule that must be obeyed at all times(e.g. ‘fortnightly salaries are paid on Wednesdays’)
- a computation that the system must carry out(e.g. ‘calculate salesperson commission based on the sales in the last fortnight using a particular formula’)
- Constraint statement
- a restriction on the system’s behavior(‘only direct managers can see the salary information of their staff’ )
- a restriction on the system’s development (‘we must use Sybase development tools’ )
Requirements specification
- Begins when the developers start modeling the requirements using a particular method (such as UML,CASE tool )
- Most important specification techniques
- class diagrams
- use case diagrams
- the specification models should be independent from the hardware/software platform on which the system is to be deployed
Architectural design
- The description of the system in terms of its modules (components)
- Concerned with
- selection of a solution strategy
- to resolve client (user interface) and server (database) issues as well as any middleware needed to ‘glue’ client and server processes
- modularization of the system
- relatively independent from a solution strategy but the detailed design of components must conform to a selected client/server solution
需求分割为模块
Detailed design
- Description of the internal workings of each software component
- Develops detailed algorithms and data structures for each component
- Dependent on the underlying implementation platform
- client
- server
- middleware
无coding
Implementation
结果是可运行代码,debug在这
Integration and deployment
- Module integration(can take more time and effort than any one of the earlier lifecycle phases, including implementation)
- Application integration
- deployment
Operation and maintenance
- Operation signifies change over from the existing business solution, whether in software or not
- Operation signifies change over from the existing usiness solution, whether in software or not
- Housekeeping
- Adaptive maintenance
- Perfective maintenance
Phasing out would normally happen due to reasons that have little to do with the usefulness of the software
4.4 Activities spanning the lifecycle
- Project planning
- Metrics
- Testing
Project planning
- Activity of estimating the project’s deliverables, costs, time, risks, milestones,
and resource requirements - Typical constraints are time and money
Metrics
- Measuring development time and effort
- Metrics are usually discussed in the context of software quality and complexity
Testing
- Test cases should be defined for each functional module (use case) described in the requirements document
- Desktop testing by developers not sufficient
- Methodical testing by Software Quality Assurance (SQA) group necessary
- Requirements, specifications and any documents (including program source code) can be tested in formal reviews (so-called walkthroughs and inspections)
- Execution-based testing:
- Testing to specs (black-box testing)
- Testing to code (white-box or glass-box testing)
5 Development models and methods
overview
-Has an associated process – iterative and incremental
- Representative models for iterative and incremental development:
- the spiral model
- the IBM Rational Unified Process (RUP)
- Model Driven Architecture (MDA)
- agile software development
- aspect-oriented development
Spiral model
word
essence