Overview of software engineering
Basic concepts
Software is a set of computer programs and associated documentation and data This is in contrast to hardware, from which the system is built and which actually performs the work.
- System software: is software designed to provide a platform for other software.
- Application software: uses the computer system to perform special functions beyond the basic operation of the computer itself.
- Scientific Software: Scientific and engineering software satisfies the needs of a scientific or engineering user to perform enterprise-specific tasks. Such software is written for specific applications using principles, techniques, and formulae particular to that field Examples are software like MATLAB, AUTOCAD, PSPICE, ORCAD, etc.
- Embedded Software: This type of software is embedded into the hardware normally in the Read-Only Memory (ROM) as a part of a large system and is used to support certain functionality under the control conditions Examples are software used in instrumentation and control applications like washing machines, satellites, microwaves, etc.
- Business Software: This category of software is used to support business applications and is the most widely used category of software. Examples are software for inventory management, accounts, banking, hospitals, schools, stock markets, etc.
- Web Applications Software: Networking Software provides the required support necessary for computers to interact with each other and with data storage facilities Networking software is also used when software is running on a network of computers (such as the World Wide Web) It includes all network management software, server software, security and encryption software, and software to develop web-based applications like HTML, PHP, XML, etc.
- Artificial Intelligence Software: Software like expert systems, decision support systems, pattern recognition software, artificial neural networks, etc. come under this category They involve complex problems which are not affected by complex computations using non-numerical algorithms.
+ Good functionality and high performance.
Life cycle of software development:
Definition: Software Development Life Cycle is the application of standard business practices to building software applications It’s typically divided into six to eight steps: Planning, Requirements, Design, Build, Document, Test, Deploy, Maintain Some project managers will combine, split, or omit steps, depending on the project’s scope These are the core components recommended for all software development projects.
There’s 3 phase in software process:
Compare the difference between the design models
Phases in the waterfall model:
The steps in the waterfall model include:
Requirement Analysis: All possible requirements of the developed system are documented in this phase and documented in the requirements specification document to serve the requirements later stage;
System Design: The required specifications from the early stage are studied in this phase and the system design is prepared This system design helps to define hardware and system requirements as well as helps to define the overall system architecture;
Implementation: With input from the system design, the system is first developed in small programs called units, which are integrated in the next phase Each Unit is developed and tested for its functionality (also known as Unit Testing);
Integration and Testing: All the units developed during the deployment phase are integrated into a system after testing of each unit After integration, the whole system is checked for any errors and failures (this stage is also known as integration testing).
Deployment of system: After functional and non-functional testing is done; the product is deployed in a customer or marketed environment; Maintenance: There are some problems occurring in the customer environment To fix those problems, patches are released Also to enhance the product several better versions are released Maintenance is performed to bring about these changes in the customer environment.
Figure 1.1 Phases in the waterfall model.
Figure 1.2 Phases in the Iterative model
Requirement: Analyze and define software requirements:
Build 1: Simple deployment with a small set of requirements.
Build i: Improves the previous version by adding requirements to create a new version.
Build n: The final stage of building a complete software version with full software requirements.
The basic idea behind this approach is to develop a system through cycles iteractively (iteration) and in smaller pieces at a time (incremental).The iterative process begins with a simple implementation of a subset of the software requirements and iterative improvement of the versions in development until full system implementation At each iteration, design modifications are made and new functional capabilities are added.
From there, we can clearly see some advantages of the incremental growth model:
- After each round increase, the performance results can be transferred to the customer so the system functions can be seen sooner.
- The previous rounds act as a prototype to help learn more requirements in the next rounds.
- The higher the priority system functions, the more thoroughly tested.Spiral pattern:
Phases (working areas) are divided into arcs Each variant of the spiral pattern can have 3 to 6 regions.
Figure 1.3 Spiral model includes 6 working areas.
Contact, communicate with customers: between developers and customers to find out requirements and opinions;
Technical execution: Build one/several representations of the application Build and release: Code, test
System evaluation: Customers participate in system evaluation
Figure 1.4 Spiral model includes 6 working areas.
Contact, communicate with customers: between developers and customers to find out requirements and opinions;
Technical execution: Build one/several representations of the application Build and release: Code, test
System evaluation: Customers participate in system evaluation
Figure 1.5 illustrates the spiral model with 4 working areas.
Figure 1.6 illustrates the steps in a spiral model with four workspace.
Figure 1.5 and Figure 1.6 are illustrations of the spiral model with four working areas:
Define goals and identify alternatives: Requirements are collected from the customer and goals are identified, developed and analyzed at the start of every phase Then the possible alternatives for the stage are suggested in this quadrant.
Identify and Address Risks: In the second quadrant, all possible solutions are evaluated to select the best possible solution.
Development of the next version of the Product: In the third quadrant, the identified features are developed and verified through testing At the end of the third quadrant, the next version of the software is available. Review and Planning for the Next Stage: In the fourth quadrant, the Customer evaluates the developed version of the software to date Finally, planning for the next phase begins
The waterfall model is simplest process model, which states that the phases are organized in a linear order In a waterfall model, each phase must be completed before the next phase can begin and there is no overlapping in the phases the waterfall model has been the most widely used process model.
It is well suited for routine types of projects where the require-meets are well understood That is, if the developing organization is quite fa-mi liar with the problem domain and the requirements for the software are quite clear, the waterfall model works well, and may be the most efficient process.
In the Iterative model, iterative process starts with a simple implementation of a small set of the software requirements and alliteratively enhances the evolving versions until the complete system is implemented and ready to be deployed An iterative life cycle model does not attempt to start with a full specification of requirements Instead, development begins by specifying and implementing just part of the software, which is then reviewed to identify further requirements This process is then repeated, producing a new version of the software at the end of each iteration of the model Iterative model is used when the software application is large.
The spiral model combines the idea of iterative development with the systematic, controlled aspects of the waterfall model This Spiral model is a combination of iterative development process model and sequential linear development model i.e the waterfall model with a very high emphasis on risk analysis It allows incremental releases of the product or incremental refinement through each iteration around the spiral The spiral model is preferred for large, expensive and complicated projects
=> The variety of models today brings a lot of options Software programming units need to base on their development needs to apply the appropriate model.
Structure of a Requirements Document
Introduction
Today, information technology has made strong development steps, becoming more and more comprehensive to meet many human needs Smart electronic devices such as phones and computers have become a part of people's lives.
Faced with the fierce competition of information technology, organizations and businesses are looking for every measure to build and perfect their information systems in order to computerize their operations Currently, the world's leading IT companies are constantly investing and improving solutions and products to enable commercialization on the Internet.
Through these products and technologies, we easily realize the importance and inevitability of e-commerce With simple operations on smart electronic devices connected to the Internet, you will be able to find out and buy what you need without spending much time You just need to go to the e- commerce service pages, follow the instructions and click on what you need Service providers will bring the product to your home.
In order to approach and contribute to promoting the popularity of e- commerce in Vietnam, we decided to carry out the topic "Writing a specification document for the website selling SHEIN women's fashion products"
Target customers: men, women, children, household appliances.
Product type: pants, tops, skirts, spare shoes, beachwear, underwear.
Use case Diagram depicting system requirements
Web server The server software provides the functions capabilities, resources for the client
- IEEE Recommended Practice for Software Requirements Specifications," in IEEE Std 830-1998, vol., no., pp.1-40, 20 Oct 1998.
- IEEE Guide for Developing System Requirements Specifications," in IEEE Std 1233-1996, vol., no., pp.1-30, 22 Dec 1996
- Custom Software Requirements Specification Document Example (International Standard) - Software Development Company.
- IT4490: Software Design and Construction - Nguyen Thi Thu Trang, transplant@soict.hust.edu.vn.
This document is written based on the standard of the software specification (Software Requirements Specifications - SRS) is explained in
"IEEE Recommended Practice For Software Requirements Specifications
"and" IEEE Guide For Developing System Requirements Specifications ". With the structure is divided into three parts:
1 Part 1: Provides an overview of SRS components.
2 Part 2: Describe the overview of factors, binding, user characteristics, environment Execute the system and its requirements Provide detailed information
Functional requirements, providing software developers to distribute Software development meets those requirements.
Overall Description
The system consists of the actors Customer and Administrator. Customers have role is a user who can use the system without logging in or can log in to use more system functions.
Administrators has the role of administering the operation of the system
1 Login: This function is intended to authenticate users when interacting with system to provide system access rights and scope.
2 Registration: To access and use the system, users must first register for an account.
3 User administration: The administrator has the role of administering the users in the system
4 System management functional groups: System administration work of the administrator.
Analyze user characteristics in SHEIN Website.
When entering the system, the user can perform the following functions:
Describe in detail each user's functional characteristics:
When you want to perform many functions in the website as a user, you must be logged in The system will allow users to login in 2 ways as shown below:
Figure 2.1 : Illustration of the login function
Users will fill in 2 fields of information "email" and "password" If one of these fields is missing, the user cannot log in When both fields are filled in, the system will verify that if both fields match, the user has successfully logged in.
Instead of having to enter information like in the first way, for the second way, users only need to choose 1 of 2 ways to log in, with Google or with Facebook.
If this is the first time visiting the website, then the account registration function is an indispensable function for users It allows users to create an account and with that account, users will forever use this website.
Figure 2.2 : Illustration of the sign up function
There will be 3 required fields that the user must fill in:
- Password you want to create
If 1 of the above 3 information is not filled in completely, the user cannot complete his account registration process.
When the user enters his correct email address and the password data field matches the password confirmation data field, the user can successfully create an account on the system.
To be able to buy something, the user will first have to choose all the parameters of that item and then click the "Add to cart" button
Figure 2.3 : Image depicting the add to cart function After clicking the add cart button , the item is already in the user 's shopping cart Users can go to the shopping cart to check that the information of the order that they have just added is complete and correct.
To be able to complete the purchase process, the user will go to the shopping cart and select the item that he wants to pay for by clicking the "Pay Now" button.
Figure 2.4 : Description of purchasing function
After clicking the "Pay Now" button, the user will come to the final process to complete his purchase.
There are 2 forms of payment:
- Payment on receipt of goods:
For the form of direct payment upon receipt of goods, the user must fill in all his required information accurately:
Figure 2.5 : Description of fields to be filled in
When completing this information, the user will click on the "SAVE" button Orders will soon be delivered directly to users.
For the online payment form, the user will first choose one of the online payment methods as he or she wants For this form, the user will still fill in the necessary information to complete the process order The user will then pay directly for the order to complete his purchase.
Picture 2.6 : Description of online payment methods.
To be able to find an item, you just need to enter the name of the item and click the search button If this item exists on the website , the system will return the order information to you
Figure 2.7 : Description of the product search function when successful
If the information you are looking for is incorrect or the system does not exist this product, the system will report that your order does not exist or the information you are looking for is incorrect:
Figure 2.8 : Image depicts when the product cannot be found.
Cost constraint: setup, design, content, maintenance.
Setting up a website involves choosing a domain name and a website hosting provider, in addition to obtaining an SSL (secure socket layer) certificate that will encrypt all necessary sensitive data.
Designing a website include everything from creating a logo, deciding where the menu bar will be located, which font you’ll use, what the color scheme will be, if you’ll have a slideshow or video at the top, how information will be presented throughout each page, and more.
Content creation process: we have to provide the content which will be displayed on our site It may include text, images, videos…We can hire content writers to create it.
Maintenance: Any and all technology will break at some point we can also choose to have a website maintenance retainer with the firm that helped to build our website.
Scope constraint: Functionality, data requirements, usability requirements.Functionality may include features on our website.
Data requirements include type of data we want to collect from users. Usability requirements are the things your website users need to complete their goals and leave satisfied Basic usability requirements include clarity, consistency, and accessibility.
The time constraint limits a project in two ways – deadlines and resources.
To pay online, the website needs to link with 3rd parties such as banks,
Shein is a web -based system so users need to have connected devices With the Internet such as computers and provided services such as email, picture Photo, text, multimedia, super media protocol to be able to send and Receive information and data between the customer and the web server.
The customer's side - users need to have a browsing application software like Google Chrome, Internet Explore, Mozilla Firefox, Opera with the latest version JavScript support.
User interfaces are clearly a very important component For different devices, the website will display different interfaces so that it is user-friendly and command structure and display menu must also be different.
In hardware interfaces, the logical characteristics of each interface between the software and hardware on which the software can run are specified Essentially, any assumptions the software is making about the hardware are listed here.