1.1 Complexity of software development
The complexity of software development is the experience of software design and developers. Specifically:
[] It is difficult to accurately express user needs
[] User demand during development often changes
[] User needs often showed a lot of text, it is difficult to understand and rush
sudden
[] It is difficult to find the complexity of large application projects
[] Human own ability to deal with complex phenomena
[] It is difficult to estimate the performance effect of the final output and whether it can meet the expectations of users.
[] The biggest challenge encountered by the designer is to select the hardware in the solution.
Piece
In addition to overcoming the above complex issues, the software system should also have the greatest compatibility and expansion.
Sex.
[] Development Successful software should be from the perspective of the user, or from the perspective of technology
It can have a change in the environment, called software compatibility. For example: for a bank
Developed software can do not modify or have a little modification can be the other bank
use.
[] Scalability means that when the software starts customization and design, it emphasizes that there is no weight of existing systems.
Under the premise of great changes, the software can be easily developed.
1.2 Software Lifecycle
Software Lifecycle (SDLC) refers to the analyst, designer and users in order to open
A series of behaviors that are issued and implemented by an information system can be divided into several different stages.
[] Analyst, study customer and user demand, and define the problem domain. Determining companies
How to use staff, management methods and computer technology to achieve commercial development,
The system will be requested for the system.
[] Designers design the system from database structure, interface, form, and report. Indeed
The hardware and software configuration required for the development system.
[] End users developed by the user system.
1.3 The SDLC development phase The entire software life cycle can be roughly divided into 7 phases, including:
1.3.1 Preliminary investigation (feasibility study)
Preliminary investigation is the first stage of system development. The main purpose of this stage is to determine
The user is now in the lack of work environment and its needs. An important result of this phase survey is to determine
Whether the system development is feasible. Feasibility is determined by the following factors:
[] The developer organizes whether it can provide users with the technical resources or techniques you need, or
User needs can be met through the market.
[] The system is feasible in economic and financial.
[] Once the software is installed, the user uses the software possible efficiency.
The initial investigation of the final document is called a feasibility study. According to the feasibility study,
The user indicates whether it will eventually accept the proposed project. If the user accepts, you can carry out the needs of the project.
Ask the analysis phase.
1.3.2 Demand Analysis
Demand analysis includes detailed analysis of current business systems, analyzing the current status and needs of its work
Change. In addition, it also includes different operations of the system and their connection to the internal and external systems.
Have an analysis. Systems analysts and users are closely working at all stages. So produced
The need is the characteristics of the new system.
Detailed document generated by demand analysis is called a demand manual.
1.3.3 system design
After the system analysis is complete, the user's demand becomes very clear. The next stage is the needle
Do specific design for new requirements. Design phase specifies the specific needs of demand instructions
Implementation.
The main operations in the design phase are:
[] Determine data project format and data elements
[] Determine the report and results of the new system
[] Rough depiction system completes the format and layout that should appear during the stage. Can be used
What kind of automated system design tool is completed on paper or on a computer screen
The curtain is shown.
[] Determine the data element and table that creates a database.
[] Computer processing method, describe all from the data input to the output result
Process.
The detailed document produced by the design phase is called the design manual. Detail design of the system
Give the programmer to develop commercial software.
1.3.4 software construction
This phase completes substantive project build (programming). Program use test or virtual number
According to one test one by one. At the same time, the programmer should also prepare the program instructions to explain with each operation.
Programming methods and causes of specific blocks. The main operations in the software construction phase are:
Build a real software code
Unit Test: Referred to as UT, which is a test of programmers who build systems. Before you need to make a unit test plan, which should include code testing expected results.
According to the nature of the test, the term system development is called white box test.
Independent Unit Test: In this operation, a group of people with this programming is not
It is the programmer to do test. Test also measured according to the unit measurement provided in the previous operation
Try plan.
1.3.5 system test
After each program unit is finished, the system needs to be tested as an overall test.
In the overall test phase of the system, all software modules set into a whole and test to ensure energy
Successful execution. Require the system to perform the corresponding work corresponding to the demand specification
Can, and generate user expectations. Enter a special test data into the system, analyst
Whether the results will be deviated with the expected results.
1.3.6 installation is enabled
In this stage, the development of the developed system is installed in user venues. Officially
Before used, you need to perform the following operations:
[] Training user usage system
[] Provide a data file required for system build
1.3.7 system maintenance
Since the environment is constantly changing, the software will timeproof, it needs to be modified and enhanced to improve the efficiency.
System maintenance operations varies depending on the size of the modification and enhancement.
1.4 Typical SDLC process workload distribution
There are several different schools and statements for calculating different stages of SDLC. However
In a typical SDLC, the final working volume distribution of each stage is close to the following ratios.
Analysis and design: 40%
Development: 40%
Test: 20%
1.5 System Analysis System Analysis refers to the system requirements by comprehensively studying the system. Stage
Segment helps to accurately master the needs of the system to implement, and correctly define the problem domain. system
Determine the specific content of software development in the analysis phase.
After the correct understanding of the problem to solve, you can enter the next stage - design
stage.
So far, the most important stage in programming work is an accurate understanding of the system. This order
The segment is accomplished by the system analyst.
What is the content you want to do during any problem? " Analysis is
A series of work to answer this question.
Analysis is an important phase of the SDLC and is the basis for all development. However, the analysis stage
What is it? That is, what is the end criterion of the analysis phase? (EXIT criteria)
It can be understood as achieving the target)
1.6 End of the system analysis phase
Analysis results should be:
[] Determine the content you want to do
[] Study the content to be done to determine all the elements involved.
[] From the real world perspective, establish a corresponding model for the current needs to solve the problem.
[] Submit a defined question to the application field expert
1.6.1 Application field experts
Ideally, any development work should seek the cooperation of experts in the application. application
The field experts are more likely to analyze problems from deep levels, and experts in the application areas do not have to
It must be programmers, their task is to ensure that programmers can fully understand the user's needs
begging.
Therefore, after the end of the system analysis phase, the elaboration of issues that need to be solved should be
Let applies expert and user understand.
1.7 Construction Model (Architecture Paradigms) There are three recognized software development models in the current computer science field. These include:
[] The process: is the initial way of solving the problem with the computer, this traditional design party
The method is based on functional decomposition. For example, the money process can be decomposed as the following steps.
: Fill in the cash withdrawal, give the sanner, verify the signature, if the signature
In line with the necessary inspections, such as the account is balanced, etc. []
More popular object-oriented development languages have Cobol, C and Basic.
[] Object-oriented: Object-Oriented Model Main Thought is to map the object map in the real world to the composition elements in the problem domain, and then use the computer to solve the problem in the problem domain.
question. The so-called OO method is the best in today's world providing computer solutions.
The way, the problem that needs to be solved is broken down into a number of pairs obtained from the real world map.
Icon. For example, an example of the above withdrawal can also be performed with a process-oriented method.
If you can see an account, a cashier, a customer in an object-oriented method?
And other concepts of real world objects are confirmed by one by one, and the problem is surrounded.
Conduct entities around these real worlds.
Expressing object-oriented models: Simula, SmaiInek, C , Java
Wait.
[] Knowledge and Neural Network: In the past half century, people have been trying, let
The computer can think about human beings, which is artificial intelligence (AI). This model collection is now
Method of real world human processing issues, using computer to simulate human thinking
Data and concluded. Realize this model of language with RETE and CLPs.
All stages of the SDLC can be applied to the above three models, however
Exhibition, object-oriented models quickly showed significantly better trend for process modes.
Knowledge and neural networks are also in the experimental stage, not suitable for commercial and technical field applications.
Therefore, it is clear that the current industrial development focus should be an object-oriented model.
1.8 From the perspective of object-oriented model, see various stages of SDLC
After determining the model of software development, you need to focus on how to implement this model.
Design and Implementation of Software Development in SDLC. However, in some inevitable environments,
There can be special cases, such as some system modules and old-oriented interfaces.
1.8.1 Object-Oriented Analysis (OOA)
Definition: Object-Oriented Analysis (OOA) is the accuracy and conciseness of the establishment of user understandable
The process of mapping models, this model is established and concise for real world object entities and concepts.
Mapping.
In OOA, the problem model corresponding to the real world prototype is required. In addition,
Non-programmers should also be able to understand the definition of the system. In other words, object-oriented analysis focuses on
Emphasize the expression from real world prototype angles.
OOAD method requires objects in the designated problem domain in the real world in the design
And entities, such as customers, cars and sales staff, etc. This requires design to connect as much as possible.
Near the world, that is, the entity is expressed in the most natural way. So the advantages of object-oriented technology
To build a problem model corresponding to the real world, and maintain their structure, relationships,
Behavior is mode.
For example, in the model of automobile transactions, analysts need to determine the following entities:
Customer, salesman, order, car
Analysts also have to determine the related features, interactive operations, and interrelationships between each entity.
In many cases, it is necessary to build the objects and behavior of the real world into a system.
The operation is implemented on a computer. For example, the operating system required in the following auto exchanges. System to solve
What is the problem? First consider the transaction process and the corresponding different operations.
[] Salesman leads customers to visit the showroom
[] Customer selected a car
[] Customer provides orders
[] Customer car payment
[] Car consignment to customers
Another example about the savings bank, the analyst should define the entity:
[] Account type: ATM, deposit, flow fund, fixed funds, etc.
[] Bank customers, cashier
[] Computer Department
This analysis determines the related features, interaction operations, and interrelationships between the entities.
[] New customers open a savings account
[] Turn money from the cash account to the regular account
[] Turn the savings account to the ATM account
This analysis method of building a real world and computer is an object-oriented analysis.
The biggest advantage.
1.8.2 Object-Oriented Design (OOD)
Definition: Object-Oriented Design (OOD) program is organized into an object entity set
The process, an instance of each object entity represents the class, and all classes are members of a class hierarchy, and all members are organized together through inheritance relationships.
The main purpose of object-oriented design should make the results obtained in the analysis stage can be in power
Non-functional requirements, implementation of the environment (Implementation
Environment, performance requirements, etc., for the mandatory restriction of the system, is formed. OOD
It is seen as an object-oriented analysis (OOA) refinement.
It emphasizes optimization solutions to ensure that all needs are met.
In the OOD phase, designers want to define a responsibility, operational properties, and
Relationship and adjust these classes to adapt to the requirements of the development environment. At the same time
Planning database and application standardization technology.
Some pictures should be obtained at the end of the OOD phase. These patterns can be divided into static and dynamic two
. Static chart expression class and object, and dynamic chart expression class relationship and determine them
Accurate operation. These classes can be embedded in a smaller package in a subsequent development phase.
Or in the subunit of the application.
1.8.3 Object-Oriented Programming (OOP)
The construction phase of the SDLC can be implemented by object-oriented programming (OOP). in other words,
Object-oriented programming is an object-oriented design using a language-oriented method
the process of. A object-oriented programming framework is jointly provided above two stages. Support OOP language
There is C , VB and Java. The results of this stage are a series of executable code, and then
A variety of different quiz can be released.
1.9 Advantages of an object-oriented model use the advantages of object-oriented models:
[] Object-oriented methods analysis, design and the concept of terms and concepts in the application field.
Implementation, there is a close connection between implementation and reality issues. For example:
In the case of a car transaction, the system analysis, the various stages of design, even in the implementation order.
During the participation of customers, sales and other personnel.
[] In the new application implementation, object-oriented methods can provide object multiplexing. This pair
The development cost reduction is very important. For example, a customer conducts a certain item
After the behavior modeling of operation, this behavior of any customer can be created.
Model.
[] Since you can reuse objects, errors, and maintenance can be greatly reduced.
Because the object has been tested and tested.
[] The multiplexing of the object can reduce the time of software design and development.
[] Since the object-oriented method is consistent with the human thinking method, it helps to ensure human beings.
Cognitive ability.
[] Object-oriented methods use data packages to solve some and data related development and
Maintenance problem. Data encapsulation technology, by allowing only function call processing data sets
Ensure that the data is not affected by the error code operation, thereby ensuring the effectiveness of the data.
[] Object-oriented analysis and design helps handle complexity of software development, help students
Software systems with good adaptability and elasticity.
1.10 software model
Review the end criteria of the system analysis phase, we reiterate must establish to implement
The complete model of the system. This model must have practical significance and can be understood by the user.
The model is used to determine the authenticity of the user to the system, which helps to determine the feasibility of the system.
For a long time, the importance of models in all engineering disciplines is obvious.
It is necessary to draw a sketch to describe its appearance and function. For example, the drawing is some entities
Model. The model is a description of the entity, and the entities are at different stages, such as design order.
Segment, build phase, or just a preliminary design. Designers must create a model
Describe the various parts of the design. The model is further divided into different views. Every look
The figure shows a specific aspect of the design or to build a system. The model is divided into several different stages.
Add appropriate details at each stage.
The model often uses visualized language, which means that the graphic symbol table is often used.
. The graphic symbol has the characteristics of simple understanding, strong comprehensive. Just like in other engineering domains, it is necessary to establish a model to become a necessary step before the software is implemented.
The model is a simplification of the real world. The establishment model is to better understand the development
system. It helps to comprehensively understand complex systems. System modeling helps to achieve the following purposes:
[] Modeling helps to visualize the system according to the system itself or by demand.
[] Modeling helps determine the structure and behavior of the system.
[] Modeling to the developer build system to provide templates.
[] Modeling record developers are the decisions made in the later use.
1.11 Model Evolution (Model Wars)
In the early 1980s, only the object-oriented language was SIMULA, in the late 1980s,
SMALLTALK and C and other other object-oriented languages are gradually realized, and they are alive.
To the needs of the object system and software modeling. The following is listed in the 1990s to teach as popular modeling
Language.
GRADY BOOCH BOOCH Model Method
Object-oriented technology, OMT, James Rambaugh
Ivar Jacobson OOSE Method
Hewlett-packard's fusion method
OOA and OOD of COAD and Yordon
Each method has its own unique processing method, process and tool, both of them and
Short, it is difficult to evaluate which suitable. Experienced developers often start using a party
The method is constantly absorbing the advantages of other methods during the development process. In fact, between different methods
The difference is not important, because these methods have gradually been gradually in the same direction over time.
development of. Current model experts have decided to set the advantages of these model technologies.
1.12 UML is born
People have more and more discovered that it is necessary to establish a public and standard parties built by an object model.
law. Requires a set of standard definitions and icons to clearly express design decisions. For this
Target, James Rumbaugh, Grady Booch and Ivar Jacobson have made groundbreaking
Work hard and provide a set of graphics, chart representations.
The result is a unified modeling language, a UML.
UML is a modeling language that is an object-oriented method to express a graphic for system design.
The representation is used to visualize the expression, narrative, constructing and recording different aspects of complex software.
Say.
UML is used to build users. Light between analysts, designers and software developers
Loose dialogue.
Companies currently participating and committed to UML are:
[] Hewlett-Packard
[] Microsoft
[] Oracle
[] IBM
[] Unisys
UML is the result of the entire computer industry, which is set for object-oriented development.
standard.
From the above-mentioned companies, it can be seen that all industries and hardware brains are
Strive to develop this standard. This standard is gradually molding, but it also needs continuous continuous
Effort. Successful in the process of modeling large complex systems. Quote OOAD and
Introduction in the UML field
"Good (standard) expression can focus on reducing unnecessary mental work
Solve more advanced or more creative issues. (By relieving the brain of
Unnecessary Work, a Good (Standard) Notation Sets It Free To
Concentrate On More Advanced and Creative Problems.) "
1.12.1 Using UML in an object-oriented model
UML is used to model many different systems. Can be used at different stages of software development
UML, from the requirements of the requirements to the software implementation and maintenance phase. The ultimate goal of UML is
Use an object-oriented diagram to describe any type of system. Software development has several types:
Information system: a database related to a database
Technical system: processing and control technology equipment
Embedded system: Controlling equipment such as mobile phones, household appliances
Distribution System: Distributed Database Systems with CORBA or other similar object-oriented mechanisms
System software: for operating system and development system drivers
Business system: system related to workflow
1.12.2 Correspondence between UML and SDLC
Review the SDLC cycle, you can see the Application of UML in different stages of system development.
Preliminary investigation: UML use examples describe the needs of customers. Each use case uses a document
Describe the specific needs of the user in detail. UML use case diagram Description and system relationship and pass
News.
Analysis stage: In this stage, it is mainly to be abstract, understanding its interior.
Operating mechanism. Class expressing the object of the real world and describes their existence and interrelationships.
The class existing in the problem domain is considered during the analysis.
Design phase: in the design phase, the results of the results of the analysis phase propose technical solutions
case. Refine modeling for classes and propose a technical framework, such as user interface, object-oriented
The permanent object and system interface of the database, etc. This phase finally produces details for system implementation stages
Instructions for documentation.
Development: The design model is converted into a true code in this stage. Programmer is used
Different UML diagrams and development code generated by the stage.
Test: UML has many different figures available for software testing, unit testing class diagrams
And class definition documents. Integrated test uses a collaboration map, and system test use case diagram, use case
The graph can be used to confirm the system behavior expected by the customer.
1.13 UML Overview
This section is mainly UML overview. Briefly introduce different components of UML, explaining
Wave and structure.
In general, different components of UML have
[] Views (Views)
[] Diagram (Diagrams)
[] Model Element (Model Elements)
[] General Mechanisms.
1.13.1 UML view
"To View" means "observation" and "inspection". Different people, such as users, system development
Neutral observers can see the system from different angles. For example: the user is input from the data
The process of output to observe the system;
System developers look from the system structure and its data stream angle. Neutral commentator
User users who are not systematic are also unrelated to system development, so it only doesn't have any observation department.
System.
System developers use UML charts to express his views on some systems. Software system usually
It can be described from many different perspectives, such as functional, non-functional, and organizational, etc.
Many views need to describe this information. The system has two aspects of dynamics and static. therefore,
There are also two types of views: dynamics and static. When viewed from the system static angle, the view is called
For a static view; a view is called a dynamic system when viewed from a dynamic perspective. Make up dynamic view
The table describes the behavior of the system.
1.13.2 UML map
If you want to understand the map in UML, you must first understand the concept of mode in UML.
UML defines the model as a comprehensive description of the system from a particular angle. Each system model
Types usually have several chart types. The figure is part of a particular view, and after the drawing, it is classified in a certain
A picture.
Different in different charts can be part of several different views. UML
Figure can see two view series. The views mentioned above can be divided into two categories: dynamics and static. and so
The chart can be classified in any view.