需求分析笔记 第一章--软件过程

需求分析第一章–软件过程

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)
  • 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)
    • 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

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

猜你喜欢

转载自blog.csdn.net/qq_38420683/article/details/83386559