Software Engineering Basics Notes PDF

Summary

These notes provide an overview of software engineering basics, including different software types, their importance, the lifecycle of software development, and various methodologies. The document discusses key concepts like software documentation and attributes of good software.

Full Transcript

Software is a collection of codes, triggers that does a specific job and fills a specific requirement. Engineering is an application of scientific and practical knowledge to invent, design, build, maintain and improve some processes. It's development of software products using best practices. Soft...

Software is a collection of codes, triggers that does a specific job and fills a specific requirement. Engineering is an application of scientific and practical knowledge to invent, design, build, maintain and improve some processes. It's development of software products using best practices. Software = programs + software documentation (manuals and operating procedures) **Software vs. Program** - - - - - - - **Software Documentation** - - - - - **Categories of Software Based on Field of Use** - - - - - - **Software Classification by Order Type** - - - - - - - **Attributes of Good Software** - - - - - - - Efficiency - a measure of how much wasted effort there's in the development of software.\ A high efficiency process has less waste. Software shouldn't be wasteful of system resources, such as memory and processor cycles Software must be acceptable to the type of users for which it is designed. So, it must be understandable, usable, and compatible with other systems that they use. 4 common stages:\ Software specification (architecture, design), software developmen (coding), software validation (test), software evolution Activity Diagram ---------------- ![](media/image10.png) Different examples of comparing numbers a and b Different kind of decision node Use Case Diagram ---------------- Extend arrow is used when we have several options\ Include arrow is used when it's an obligatory action ![](media/image1.png) Administrator and Student Lecture 2\ Software Development Lifecycle\ **SDLC - well-defined, structured sequence of stages in software engineering to develop the intended software product, there are different sdlc models specified and designed which are followed during the software development phase. These models are also called Software Development Process Models. SDLC provides a series of steps to be followed to design and develop a software product efficiently.\ SDLC Framework includes following steps:** - - - - - - - - - - - Waterfall Model --------------- The simplest model\ \ The issue - you have to ensure that on each stage there are no problems so that you can advance to the next stage ![](media/image7.png) Prototyping Model ----------------- in prototype in model we have to create prototypes and when we improve this prototype, we have to frozen requirements in software requirement specification and then we have to fill this prototype in with all functionality. Spiral Model ------------ Favoured for large, expensive and complicated projects\ Same order of stages ![](media/image19.png) V-Model ------- Vmodel provides means of testing of software at each stage in the reverse manner at every stage.\ Verification and Validation go in parallel Big Bang Model -------------- The simplest\ Little planning\ Most coding and funds Not suitable for large projects We don't know the result, the aim, so no specification requirements can be created Agile ----- ![](media/image4.png) --------------------- Needs more involvement from customer and used if customer needs functional requirements in less than 3 weeks\ It is based on iterative and incremental development where requirements and solution evolve through collaboration between cross functional teams. It has different frameworks, such as SCRUM SCRUM ----- Based in sprints (several weeks long), the duration of the sprint depends on what you've negotiated with the client.\ It is the best for products and development development projects. ![](media/image20.png) Kanban ------ Exists in a table that is divided into columns that show the flow of the software production\ When a new task comes into play, a new card is created and put on a board\ Every participant can see the state of the task\ To-Do, Work-In-Progress, Validate, Complete - are the different columns/statuses of a task Best for Production support. Scrumban -------- The teamwork is organized in small iterations and monitored with the help of the Visual Board. Extreme Programming ------------------- Offering trust to developers by motivating them to accept all the changes in the customers' feedback.\ The main goal is customer's satisfaction Scrum vs Waterfall ------------------ Customer is involved in every stage in SCRUM\ In SCRUM the documentation (software requirement specification) can be presented in a different form and changed at any time In waterfall we talk to customer in the beginning (requirements) and end(maintenance)\ In waterfall model the software requirement specifications are needed SCRUM Model ![](media/image14.png) (BPMN diagram) The Sprint Planning Task ------------------------ Story points (the unit of labour intensity or the efforts of a coding team while implementing a requirement of a user story) are given depending on the task and for each\ Velocity is the speed of execution of work during the sprint (velocity is average of the previous three sprints)\ Labour Content - the amount of resources (developers, time)\ Sprint Backlog is the small software requirement specification for future sprints Criteria of a Good Requirement ![](media/image17.png) Types of Software Requirements Business Requirements: described by the organization, talks about business objectives and goals\ User Requirements: what users must be able to do with the product, can be in the natural language\ Functional Requirements: clear view without other definitions or meanings, it's a list of criteria Business rules: industry standards, government laws, some corporate policies, it all must comply with it all Quality attributes: emerge from business rules System requirements: what's important for the system to do External interfaces: connection to other software systems and users, something that connects software and the world Constraints: imposed limitations on the software engineers Ways to collect requirements ![](media/image16.png) Formats for collecting requirements Software Requirement Specification (SRS) - comprehensive description of the intended purpose and the environment for software under development. SRS fully describes what the software will do and how it will do it. Typical pattern:\ ![](media/image12.png) IDEF Models ===========

Use Quizgecko on...
Browser
Browser