Embedded software test preparation_7 system development process and project management

System development process and project management

development model

Divide the development process into stages.

image-20230506173235225

Waterfall Model: SDLC. The disadvantage is that the requirements must be clear at the beginning, but it is difficult for the development cycle not to change.

image-20230506173252523

So improve:

image-20230506173631547

Prototype: a demo.

Rapid Prototyping Model: Abandon the model. Once the user needs are obtained, the prototype can be discarded.

Evolutionary model: Based on the prototype, it is improved according to user needs. But the problem is that if the user interferes too much and the user dominates the project, it is difficult to control the project time.

Therefore, combining the prototype and the waterfall model, the spiral model and the incremental model were born.

Spiral model: suitable for projects with large projects and high risks. Starting from the demo, it may be possible to have an operational product in the end.

image-20230506174212636

Incremental model: Each release is an operational product.

image-20230506174341042

V-Model: Added some validation and testing. The software requires high quality, and the disadvantage is that testing can only be carried out after coding.

image-20230506174434781

Fountain Model: Object Oriented.

Image credit: What is a Fountain Model? _Wisdom Chengdu Blog-CSDN Blog

insert image description here

RAD: Rapid model based on component model and waterfall model, which is commonly used now.

Component assembly model:

image-20230506174811645

The component library greatly improves the efficiency of development such as transplantation.

Agile Methodology Model: Conforming to the Agile Manifesto is an agile method.

image-20230507002834816

The general principle is that small versions are delivered quickly.

image-20230507002950267

image-20230507014935345

Typical agile method:

  • extreme programming.

image-20230507003026634

It is not necessary to apply all of them, and it should be analyzed according to specific projects.

  • Crystal method series: crystal, you can still succeed with less discipline.

  • Open source openUp: developers are widely distributed geographically, and troubleshooting is highly parallel. Anyone sends a patch to the maintainer, and the maintainer merges the patch into the source code repository.

  • scrum scrum method: keep iterating. An iteration for a period of time, such as 30 days, is called a sprint, and multiple iterations are performed according to priority to achieve requirements.

  • FDD function-driven development method, short-term iteration stage, programming is generally divided into chief programmer (project coordination) and class programmer (source code writing).

  • asd Adaptive software development method, divided into three stages of guessing, cooperation, and learning.

  • dsdm dynamic system development method, business-centric framework development method, with business as the core.

project management

image-20230507015050583

Expert Judgment: Experts use empirical judgment.

Three-Point Estimation: How many people are needed in the best case? Worst case scenario? What about the general situation? Calculated based on weight.

Function point estimation: Estimate based on several function points of the project.

time management

PERT chart

image-20230507151157031

Dashed lines are activities that do not require time.

Earliest start time is pushed forward from the beginning. Such as E activity. It starts at the 3rd node at the earliest, that is, it starts on the fourth day (the maximum value of AB), and ends on the seventh day at the earliest.

image-20230507153236729

25 was completed the earliest.

The latest working time is reversed from this node.

image-20230507162615404

A: The total time difference is 0

B:2

C:2

……

Critical path: a path with total time difference = 0. 1-2-3-4-6-7-9, events on this critical path cannot be delayed, delays will affect the overall project process.

The PERT diagram relationship is very clear.

Gantt chart

image-20230507170144256

Gantt chart time flow, easy resource planning. But the representation of the relationship is not good.

example:

image-20230507170401075

The minimum time is 18 days for the longest path ABCEFJ.

BC and BD are developed by the same person, either BC first and then BD, and BD is 3 days later; or BD first and then BC, BC is 2 days later, and the total duration is +2.

image-20230507171603409

Originally, 02578 was the longest, 55 days.

After the change, it is equivalent to 0268 is 8+23+25=56 days.

image-20230507172253197

Minimum time: ABDIJL 20 days.

Path through GH: 17 days, so GH relaxation time 20-17.

Software Configuration Management

image-20230507173833758

image-20230507173850277

After the development library is tested, it can enter the controlled library and can be modified. After modification, it can be tested and put back.

Checkpoint: Check the project at the specified time interval to see the difference between the actual and the plan and modify it.

Milestone: A sign of staged work.

Baseline: after formal review, important milestones. It cannot be easily changed.

  • Functional Baseline: System Design Specification.
  • Allocation Baseline srs: Requirements Specification.
  • Product Baseline: A specification (comprehensive) of all configuration items of a software product.

image-20230507174911621

After submitting the review and passing the review, apply for the change, pull down the code and check it out to the working state to start the change.

Risk classification

image-20230508055744648

CMM certification

A type of certification, through which programs may be preferred. Practice in software development and software testing.

image-20230508060315024

18 key domains:

image-20230508060824539

The exam will ask which judge is at which level.

Requirements engineering

Requirements analysis is very important, sometimes the whole project will collapse if it is not done well.

Requirements development: requirements acquisition, requirements analysis, requirements definition (srs specifications), requirements verification.

Requirements management: After the above part is determined, the actual requirements can be modified through the requirements baseline application. Including change control, version control, requirements tracking, requirements status tracking.

Requirements are divided into: software requirements, user expectations of the system in terms of function, control, behavior, performance, design constraints, etc. (what is the problem that the system needs to solve).

  • User needs: user perspective.
  • Business requirements: the overall picture.
  • System Requirements: Computerized. Including functional requirements (functions to be realized), non-functional requirements (performance, etc.), design constraints (such as database, users require mysql, or os, users require linux).

From top to bottom from the abstract global to the specific details.

image-20230508062924549

Three is the most abstract, and two is the most functionally concrete.

image-20230508063050071

A。

structured analysis

image-20230508063113613

Data dictionary: A description of data that is easy for users or developers to understand. For example, the dbname item in the database stores the name of the database, and the encoding stores its encoding method... Or standardize user input on the ticketing platform, and the destination can only be selected such as Beijing, Hebei, Guangzhou...

Data flow diagram:

image-20230508063753029

The top level represents the relationship of the system to external entities. The figure below is the specific of the top-level figure.

The circle is data processing, the arrow is data with flow direction, the two lines are data storage, and the external entity is a square entity, which is the source of external data.

State Behavior Diagram:

image-20230508064224774

Start point, end point (circled), boxes are states, lines are events.

Compared with the data flow graph, it is a dynamic behavior, and the data flow graph is static.

ER diagram, old acquaintance of mysql:

image-20230508064405217

Entities and properties are connected by wires.

The concept of strong entity and weak entity:

Training company database design
business requirements are as follows:

Each student can only take one course per term.

By implication, the company has many courses. We only analyzed the requirement that "each student can only take one course per session", and found that two entities are involved: student and course. So we may take it for granted to design the database like this:

insert image description here

A course can be chosen by multiple students, and a student can only choose one course. Found a problem? The business requirement does not mean that a student can only take one course, but that a student can only take one course in one semester! Designing the database in this way is cutting off people's money. Therefore, we must consider the concept of "per session":

insert image description here

It seems that there is no problem, but it is impossible for the database design to be so easy. We regard each course as a record, so for course information, such as course name, price, and introduction, a row of records must be stored in the database every time a course is opened, so our database will have a lot of redundancy (also That is to say, it does not satisfy the second normal form of the database). Therefore, we should design the database like this:

insert image description here

see it? The "Record" here is a weak entity, and its primary key is "semester primary key + student primary key", which represents the behavior of students participating in the course, and the abstraction becomes a weak entity. Why use the primary key of the semester table and the primary key of the student table? Because one student, one semester, can only take one course, so according to the principle that the primary key uniquely identifies each row of records, it should be selected in this way. The primary key of the curriculum table becomes the foreign key of the Record table, and there is a one-to-many relationship between the curriculum table and the Record table.

In this example, students and courses are obvious entities in the description of business requirements, and "period" can also be considered as a more obvious entity, but the verb "participate" becomes "attendance record" in our database, that is Record entity.
————————————————
Copyright statement: This article is an original article of CSDN blogger "Qiao Qing", following the CC 4.0 BY-SA copyright agreement, please attach the original source link and this article for reprinting statement.
Original link: https://blog.csdn.net/qq_41112170/article/details/103328927

Object-oriented needs analysis: less test.

image-20230508070246687

Aggregation: For example, if a car tire is broken, the car is fine.

UML diagram:

image-20230508070452296

structured design

based on structured analysis.

image-20230508071504145

Information hiding: encapsulation.

Module independence: each module does only one thing as much as possible.

Call depth: nesting level.

Fan-in and fan-out: Other modules call this module more often, and this module calls other modules less.

image-20230508071946074

Modular structure design

Divide the system into modules that have interfaces with each other.

A module is the basic unit of the system, including: IO, processing functions, internal data, and program codes.

OO design

image-20230508082209144

Software and hardware co-design

image-20230508082849248

image-20230508083304236

Guess you like

Origin blog.csdn.net/jtwqwq/article/details/130552800
Recommended