Software analysis of soft work video

Source: Internet
Author: User
Tags data structures manual documentation valid

Learning a bit slowly, 15 episodes of video will be nearly watched for 10 days. But it was good to read and the record was acceptable. Otherwise, do not work hard again. All right, cut the crap, look at my summary.

In general, we all think about a term. Most people tend to think about what it is and what it is (meaning). Let's get to know the magic of the world of soft work.

Software engineering (software Engineering, referred to as SE), is a study of engineering methods to build and maintain effective, practical and high-quality software disciplines, is software-related engineering, and software is what, software is the system and hardware interdependent part of the other , including a complete set of programs, data, and their associated documents.

So, here comes the question, the program, the data, the documentation.

program : sequence of instructions according to the functional and performance requirements of the design. Data : The data structure of the normal operation information. Documentation : Application development, maintenance and use of the amount of graphic material

In fact, there is no specific definition of software engineering, different companies have different interpretations:

Boehm: Use of modern scientific and technological knowledge to design and construct computer programs and relevant documentation necessary for the development, operation and maintenance of programs

IEEE: A system approach for software engineers to develop, run, maintain, and repair software

Fritz Bauer: Establish and use a sound engineering principle, a series of methods to obtain reliable software that can operate effectively on the actual machine with more economical means

What characteristics.

1. Logical entities, non-physical entities (abstract)

2. Different production and hardware, no obvious manufacturing process during the development process

3. During operation and use, no mechanical wear and tear of hardware, aging problem

4. Development and operation of hand system limitations, with varying degrees of dependence

5. Still not completely free from manual operation

6. itself complex (actual problem, logical structure)

7. Cost-prohibitive

8. Many design social factors (intellectual property, etc.)

Other areas of understanding:

There are many kinds of classifications . According to the function divides into the system software, the support software, the application software, divides according to the scale, has the miniature, small, medium, large, very large, the large scale, also has according to the work way, the service object, the use frequency, the failure influence and so on distinction.

Fundamentals of software Engineering:

1. Rigorous management with phased life cycle planning

2. Adhere to the stage review

3. Implement strict Product control

4. Using modern programming techniques

5. The results should be able to clearly examine

6. People who make reasonable arrangements for the Software development team (few but good)

7. Recognition of the need for continuous improvement in software engineering practices

The basic objectives of the Software engineering project are:

Pay lower development costs

Meet the required software features

Achieve better software performance

Software developed for easy portability

Requires lower maintenance costs

Be able to complete development work on time and deliver it instantly

Principles of Software Engineering: decomposition, independence, consistency, certainty

life cycle (six phases): (from development to abandonment) problem definition, feasibility study, requirement analysis, design, coding, testing, operation and maintenance ; three phases: software planning, development, and maintenance phases

Software development models, such as waterfall models, B-models, rapid prototyping models (rapidprototyping model), evolutionary models, incremental models, helical models, etc.

Through the above understanding of software engineering, then we may think to do a software has what, do not do it, then we see how to do it.

If you start the software directly, then why also call the program engineering, directly called programming is not finished. In fact, software engineers engineering, need to consider all aspects, not only to create software, but also for the software description, as well as maintenance, so that non-professional people know how to use and maintain software, this is the focus. So for non-professionals to understand, you need to create a variety of documents. Since I have not finished the video, I can only introduce the documents I understand.

The document is a software specification that specifies the function and operating environment of the software, satisfies the specifications and completes the customer's requirements. Features of the SOFTWARE specification: easy to understand, visibility, support, acceptability, reliability, robustness, maintainability, speed.

First, the second chapter introduces the Feasibility study report .

Feasibility Study Steps :

Review system size and objectives

Study the systems that are currently in use

High-level logic models for new systems everywhere

Recommend methods to users

Recommend a course of action and make critical decisions

Draft development plan, write feasibility report

Submit to superior and expert review


Software Plan content

Software function scale, software capability to hardware requirements, interface interface nature and complexity, etc.

Environmental Resources:

Human resources, at different stages of the requirements of different personnel

Hardware, including target machines, and other machines

Software, including post-support software and use software

Develop schedules, including delivery dates, how to organize and distribute power

Software costs, as long as both parties can accept (estimate)

Resource Performance Description: What level of people, what kind of functional performance of hardware and software

Price Assessment

Impact factors: Population, products, engineering, resources

1. Parametric algorithm

C=f (Vi); C is the software price, vi selected independent parameters affecting the price of the software

2. Line of code (LOC) Price estimation technology

For parameters: Source code line, is the SOFTWARE PRODUCT unit of measure, does not include comments, job commands ...

The length of time a person participates in labor.

Software productivity, amount of software completed per unit of work time

Loc calculation method, the functional decomposition of the design system, according to historical data and experience to select the LOC price per software function block

3. Task Decomposition method

Thought: firstly, the software development project is decomposed into several relatively independent tasks, then the cost of each development task is estimated separately, and the total cost is summed up at the end.

4. Automatic Cost Estimation method

To alleviate human labor but to have a lot of empirical data to do the basis, to have the Wolf Howling database system support

Cost/benefit analysis

Cost Estimation method: Top-down valuation, bottom-up valuation

Cost/Benefit Analysis method:

Operating fee: Depending on the operating costs and maintenance costs of the system

The economic benefits of the system: increased revenue from the new system and operating costs saved by the new system; system economic benefits generally exist throughout the life cycle

Project Development Plan

Introduction: Purpose of writing, project background, definition, reference material

Project Description: Work content, conditions and restrictions, products, operating environment, services, acceptance criteria

Implementation plan: Task decomposition, progress, budget, key issues

Personnel organization and division of Labor

Delivery deadlines

Thematic plan Highlights

The third chapter is about software requirements

task : In-depth description of software functionality and performance

Determine the constraints of software design and the interface details of soft armor with other system elements

Define other validity requirements of the software (with the help of the logic model of the current system, the logical model of the target system, and solve the "what" problem of the target system)

Requirements include: functional requirements, performance requirements, environmental requirements, reliability requirements, security requirements, user interface requirements, data usage requirements, cost consumption requirements, development progress requirements, pre-estimate the possible goals of the system

method Commonality:

Mechanisms to support data domain analysis

Method of function representation

Definition of the interface

The mechanism of problem decomposition and the support for abstraction

Logical and physical views

System Abstraction Model

the principle of software requirement analysis

Information domains and functional domains that need to be able to express and understand problems

To be able to decompose and refine the problem in a hierarchical way

principles of software Requirements Specification

Separating functions from reality describes what to "do" rather than "how it is done"

Requires a processing-oriented specification language (or System definition language)

Software Requirements Approach

System Analysis process and its presentation method of information and functional domains of software problems

Mostly information-driven (stream of traffic, not including control)

Structured Analysis method

Data flow oriented

Using Data processing type software

Data flow Diagram (DFD): Expressing software requirements by means




the role of the streaming diagram:

1. System analysts use this tool to analyze system information flow from top to bottom

2. You can draw the parts of the picture that require computer processing

3. According to data storage (Zhu), further data analysis, to the database design transition

4. According to the data flow, set the access mode

5. Corresponding to a processing process, with the corresponding language, Judgment table and other tools to express the processing method

advantages and disadvantages of the streaming diagram:

1. The overall concept is strong, each layer has a clear emphasis on "what", "what Needs", "give what"

2. Can reflect the flow of data and processing process

3. Due to top-down analysis, it is easy to detect the logic errors of various parts of the system early and easy to correct

4. Easy to work with the computer relative photos

5. Not intuitive, generally in the operation process analysis based on the summary, abstraction, correction to get

6. If there is no computer system help, manual drawing is too cumbersome, heavy workload

principles for checking and modifying the streaming diagram

1. All graphical symbols on the streaming diagram are limited to the four basic graphic elements mentioned above

2. The main diagram of the streaming diagram must include the above four basic elements, indispensable

3. At least one input data stream and one output data stream per processing

4. In the streaming diagram, the processing box must be numbered by layer. The number indicates the parent-child relationship between the level of the processing and the upper and lower layers

5. Specify that any data stream sub-diagram must correspond to one of its previous layers, both the input data stream and the output data stream must be consistent

6. Each element on the diagram must have a name

7. Control flow cannot be entrained in the streaming diagram

8. You can omit trivial details to focus on the primary data stream when you first draw

9. No cross-stacking is allowed

Data Dictionary

Coordinate with data flow chart to clearly express the requirements

(main) Entry description--Definition of graphical elements (name, alias or number, classification, description, definition, location, other etc.)

Tools for writing logic descriptions :

structured English , a language between natural and formal languages, is defined by English command verbs, data dictionaries, limited custom words, logical relations if_then_else, case_of, While_do, Repeat_ Until and so on, the text of the language is segmented with the basic control structure, the operation is represented by natural language phrase, and its basic control structure has three kinds: simple statement sentence structure; repeating structure; judging structure

decision Table (lists the various logic through the list)

The first condition is the final optimization of the action, and the optimization begins with the action.

Describe the basic description of the processing, the application of multiple logic, clearly describe the complex combination of conditions and the corresponding action should be done, but can not express the uncertainty of processing, repetitive cycle processing

Decision Tree (representation of logical composition by tree graph)

A tool used to express processing logic, sometimes more intuitive than a judgment table.

Advantages: Simple form, intuitive, the decision table of the number of data sources more than two times, the decision table write not more, the decision tree comparison image

Insufficient: less concise than the judgment table, the closer the leaves to the more places

Other also has the i/p/o diagram , the level block diagram, thePHA diagram and so on, does not do the detailed introduction.

How to choose a tool:

1. from the readability of the machine : structured English, Judgment table better than the decision tree

2. from the perspective of the description: The decision tree is better

3. for logic validation and optimization : The decision table is good (all possibilities are listed)

Prototyping Method

Early development, complete and accurate specifications are not easy to get, users tend to the system only a vague idea, difficult to fully accurately express the overall requirements of the system

Classification of software prototypes:

Exploratory type

Explore Requirements Analysis

Experimental type

Get Data

Evolutionary type (evolutionary or progressive type)

To start the target system as the core of continuous improvement


The most common method of dynamic analysis

A state migration diagram is a graphical representation of how the state of a system is corresponding to an external signal, and the circle "0" represents the system state that can be obtained, and the Arrow "→" represents a migration from one state to another, ". "Represents the event of a transfer that is a system. Advantages: simple, mechanical analysis of many cases, easy machine where analysis tools, such as the transition to a State migration table, processing function strong; The relationship between states is intuitive (cannot have cross-unclear)

Time Series diagrams (Sequence Diagram), also known as sequence diagrams or sequential or sequential plots, are UML interaction diagrams. It shows the dynamic collaboration between multiple objects by describing the chronological order in which messages are sent between objects. It can represent the sequence of behavior of a use case, and when a routine is performed, each message in a sequence diagram corresponds to a class operation or trigger event that causes a transition in the state machine.

Petri nets abbreviated as PNG (Petri net Graph), widely used in the development of hardware and software systems, for the description and analysis of the mutual independent, cooperative operation of the processing system, that is, the concurrent execution of the processing system; tag, or token, is a flag indicating what state the system is currently in


the fourth chapter introduces the software summary design manual and the detailed design manual

The fourth chapter describes the design of software.

process steps for the overview design :

S1: Design System Solutions

S2: Choose a reasonable set of scenarios

S3: Recommended Best Practices

S4: Functional decomposition

S5: Software Architecture Design

S6: Design of database design and file structure

S7: Develop a test plan

S8: Writing a summary design document

S9: Review and reexamination Overview design documentation

the concept and principle of software design

1. The basis for dividing the software into several independent components

2. How to represent functional details and data structures within different components

3. How to measure the technical quality of the software

goals and tasks of software design

Based on the software requirements expressed in the information domain, as well as the functional and performance requirements,

Data design

System Structure Design

Process Design

Note: General first concept design, after detailed design

the process of software design:

Develop specifications

The overall design of software system structure

Processing mode Design

Data structure Design

Reliability Design (Quality design)

Prepare documentation for the summary design phase (summary design specification and database specification, complete user manual)

Summary Design Review

Software design basics:

top-down, progressive refinement

Architecture top-down approach, each level of process detail and data detail-by-layer refinement

Software architecture

Structure of the module structure and data

Decomposition of a problem into sub-problems, and then do not solve sub-problem (sub-problem development workload is less than the original problem development workload "math problem")


The program structure is divided into two types

tree structure (hierarchical structure):

Clear hierarchy, only one node, no secondary nodes, multiple child nodes (there is no connection between the brothers, only related to the parent node); portrait depth, horizontal call fast read, each node input called fan in, output called fan out

Mesh Structure :

Any two nodes can be linked, fuzzy hierarchy, not easy to see the root node

structure diagram (s/c chart)

Reflects hierarchical invocation relationships and linkages between modules in a program

Modular

The ability to divide a large and complex software system into simple, easy-to-understand modular structures

1. Module

Rectangular box, module name, each module name cannot be the same

Module name (function, function abbreviation, defined module, subroutine or procedure), usually named by function, function not single with main function name

2. Call relationships and interfaces for modules

3. Transfer of information between modules

Incoming and outgoing information is necessary to indicate the name and characteristics of the information

To describe the main information when transmitting more information

4. Indicates that module a conditionally calls another module, b

The Diamond box indicates that the marking point must be in the previous module, as far as possible to write the conditions


Arcs represent Circular calls, and the right arrows indicate the direction of the loop call (order)

system structure diagram of the program

Small structure diagram depth of about 5-7 layers, medium more than 10 or 10 layers, complex dozens of-layer, reflecting the complexity of the problem

Width refers to any one layer of the module book, the greater the width, the higher the complexity

Fan out too much to show that by other modules affect large, fan out not too much, generally 2-5, do not exceed 9-10, reduce fan out, it is bound to increase the depth

Fan in indicates the driver module (the previous module) How many, fan in general 1-5, to control the quantity


A good system diagram should show "urn" type

Abstraction of

When the software system is designed for module, it can have different abstraction level, namely decomposition system;

Control decomposition Speed

Process: Layered abstraction, gradual refinement;

Further refinement according to task requirements;

Program process abstraction (programming phase);

Data abstraction, describing the details of a data object at different levels, defining the operations associated with that data object

Information hiding

When dividing the module (define the level), when the data in the module changes, try not to affect other related modules or less impact, that is, do not allow other modules to use this module

the independence of the module

Basic properties of the module:

Function: Describe what function the module implements

Logic: Describe how the module is done inside

Status: The environment and conditions when the module is used

Independence refers to the specific sub-functions of each module in a software system that involve only software requirements.

Two criteria are generally used to measure module independence, namely, module-to-block coupling and module cohesion

coupling between modules

The greater the independence, the lower the coupling

Non-direct coupling (nondirect coupling)

Two no direct relationship between modules

data Coupling (coupling)

If a module module accesses another module, it is a simple data parameter (not a control parameter, a public data structure, or an external variable to exchange input and input information)

tag coupling (Stamp coupling)

If a set of modules passes the record information through the parameter table, it is the tag coupling

control coupling (in-coupling)

If a module through the transmission of switches, signs, names and other control information, obviously control the selection of the function of another module

external coupling (External coupling)

A set of modules accesses the same global simple variable instead of the same global data structure, and does not pass the information of that global variable through the parameter table, strong coupling

Public coupling (Common coupling) If a set of modules accesses the same common data environment, there are two cases of strong coupling: loose public coupling and tight public decoupling

(a) data written by a module (not required by B module) may be imported into the B module

(b) Two modules are capable of modifying data, creating confusion and minimizing

rational use of common coupling reduces the amount of memory used


content Coupling (coupling)


in-module clustering

the higher the cohesion, the stronger the module independence. Cohesion can be converted to one another.

Functional Cohesion (functional Cohesion)

Each part of a module is an integral part of completing a specific function, is an indivisible, ideal module

Information Cohesion (informational Cohesion)

Also known as (in order to gather), the module completes several functions, each function in the unified data structure operation, each function has a unique entry point, strong cohesion

Communication Cohesion (communication Cohesion)

If all functional parts within a module use the same input data, or produce the same output data

in-Process poly (procedural Cohesion)

When using a flowchart as a tool design program, draw a part of the flowchart to form a module

time to gather (classical Cohesion)

Also called instant cohesion

1. The execution of each module is related to time

2. It is generally required that all functions be performed within the same time period;

3. Actions are performed only once, often affecting other modules;

4. The time relationship between the parts within the module reflects some substantive issues

Logic cohesion (Logical Cohesion)

Combine the functions of a centralized function

coincidental cohesion (coincidental Cohesion)

There is no connection between the parts, or even if there is a connection, the connection is loose.

Structured Design Approach

The first research, analysis and review of the flow chart, and then according to the flow chart to determine the type of problem, typical types: transformation and transaction type

modules in the system structure diagram

Incoming Module

Enter physical data stream, outgoing logical data stream, left skew

Outgoing Module

Outgoing logical output data stream (general), right oblique

Transform Module

Obtain data from the superior module and return to the superior module after transformation

Coordination Module

Coordination and management of all subordinate modules

transformation System Structure diagram (a line), the process is broadly divided into three steps: access to data, transform data and give the data



transactional system structure diagram (with branches), accept a transaction, according to the characteristics and nature of transaction processing, choose to assign an appropriate processing unit, and then give the result


Transformation Analysis

Method Four Step Composition:

1. Redraw the streaming chart

2. Distinguishing between valid (logical) inputs, valid (logical) outputs, and central transformation sections

3. First-level decomposition, design of the upper module

4. Perform level two analysis, design the middle and lower modules of the input, output and center transform parts

Center switching is the main module location

1. When selecting the order of the block design, all the direct subordinate modules of a piece of wood must be designed and completed.

2. When designing the lower module, the coupling and cohesion of the module should be considered.

3. Use the "black box" technique: When designing the current module, define all the lower modules of the module as "black box"

4. When the module is divided, the direct subordinate module of a module is usually around 5 (called module)

5. Stop the function decomposition of the module if the following conditions occur:

6. When the block can no longer be subdivided into obvious sub-tasks;

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.