Podcast
Podcast
Podcast
Something went wrong
Questions and Answers
Questions and Answers
Which of the following BEST describes the primary goal of software engineering?
Which of the following BEST describes the primary goal of software engineering?
- To produce code as quickly as possible.
- To create high-quality software that meets functional and non-functional requirements in a cost-effective manner. (correct)
- To use the latest technologies regardless of their suitability.
- To minimize documentation and focus solely on coding.
In the equation software = code + data + documents
, what does 'data' primarily refer to?
In the equation software = code + data + documents
, what does 'data' primarily refer to?
- The user interface elements of the software.
- The data structures and files that enable programs to compute and manipulate information. (correct)
- The hardware components required to run the software.
- The executable instructions of the programs.
What is the MAIN purpose of the 'Conceptualisation' stage in the software development lifecycle?
What is the MAIN purpose of the 'Conceptualisation' stage in the software development lifecycle?
- Identifying a need or opportunity and presenting a business case for developing a software system. (correct)
- Deploying the software to the end-users.
- Writing the actual code for the software.
- Testing the software to ensure it meets requirements.
During 'Requirements Analysis', what is the primary activity?
During 'Requirements Analysis', what is the primary activity?
Which document outlines the detailed requirements of the complete system, including software, operating system, database, and third-party software?
Which document outlines the detailed requirements of the complete system, including software, operating system, database, and third-party software?
What is the primary goal of the 'Design' phase in software development?
What is the primary goal of the 'Design' phase in software development?
Which of the following elements is typically included in an architectural (high-level) design document?
Which of the following elements is typically included in an architectural (high-level) design document?
What concepts are emphasized when discussing the design of software components?
What concepts are emphasized when discussing the design of software components?
What is the purpose of API (Application Programming Interface) design?
What is the purpose of API (Application Programming Interface) design?
What is the main objective of database design?
What is the main objective of database design?
Which of the following is NOT a typical activity of the 'Testing' phase?
Which of the following is NOT a typical activity of the 'Testing' phase?
What is the purpose of a 'test execution report'?
What is the purpose of a 'test execution report'?
Which document defines the deployment strategy for moving software from development into production?
Which document defines the deployment strategy for moving software from development into production?
What is the primary focus during the 'Maintenance' phase of the software lifecycle?
What is the primary focus during the 'Maintenance' phase of the software lifecycle?
Which of the following BEST describes 'software engineering' as presented in the text?
Which of the following BEST describes 'software engineering' as presented in the text?
Which of the following questions would likely be asked during the 'Requirements Analysis' phase?
Which of the following questions would likely be asked during the 'Requirements Analysis' phase?
Which aspect of software design is concerned with how components have minimal dependencies amongst them?
Which aspect of software design is concerned with how components have minimal dependencies amongst them?
Which of the following is an example of a non-functional requirement?
Which of the following is an example of a non-functional requirement?
What is the purpose of the 'traceability matrix' in software testing?
What is the purpose of the 'traceability matrix' in software testing?
Which document provides instructions on how to install the software?
Which document provides instructions on how to install the software?
Questions and Answers
Something went wrong
Flashcards
Flashcards
Software Engineering
Software Engineering
The application of engineering principles to the design, development, maintenance, testing, and evaluation of software systems to produce high-quality software that meets requirements in a cost-effective manner.
Software Development Lifecycle
Software Development Lifecycle
The series of phases a software system goes through, from initial idea to retirement, including conceptualization, requirements analysis, design, coding, testing, deployment, and maintenance.
Software Lifecycle: Conceptualization
Software Lifecycle: Conceptualization
The initial stage where a stakeholder identifies a need, proposes a software system, and presents a business case, resulting in a document describing the business goals and objectives.
Software Lifecycle: Requirements analysis
Software Lifecycle: Requirements analysis
Signup and view all the flashcards
Software Design
Software Design
Signup and view all the flashcards
Architectural (high-level) design
Architectural (high-level) design
Signup and view all the flashcards
Component (low-level) design
Component (low-level) design
Signup and view all the flashcards
Application Programming Interface (API) design
Application Programming Interface (API) design
Signup and view all the flashcards
User Interface (UI) design
User Interface (UI) design
Signup and view all the flashcards
Database design
Database design
Signup and view all the flashcards
Testing
Testing
Signup and view all the flashcards
Integration testing
Integration testing
Signup and view all the flashcards
System testing
System testing
Signup and view all the flashcards
Acceptance testing
Acceptance testing
Signup and view all the flashcards
Deployment
Deployment
Signup and view all the flashcards
Maintenance
Maintenance
Signup and view all the flashcards
Flashcards
Something went wrong
Study Notes
Study Notes
Software Engineering Overview
- Software engineering is the disciplined application of engineering principles to design, develop, maintain, test, and evaluate software systems.
- The goal is producing high-quality, reliable, efficient, and scalable software that meets functional and non-functional requirements cost-effectively.
- The success of software development relies on two interrelated methodologies: software development lifecycle and project management.
- Software is defined as code, data structures/files, and documents describing the construction, operation, use, and maintenance of software systems.
- Core focus is object-oriented software design and software quality.
Software Development Lifecycle Stages
- The software lifecycle includes phases from initial idea to retirement.
Conceptualization
- A stakeholder identifies a need, proposes a system, and creates a business case.
- A business requirements document outlines the goals from the client's perspective.
Requirements Analysis
- Product requirements are determined through negotiation among stakeholders.
- Key questions are addressed, such as identifying the owner, inputs, outputs, data formats, computations, and expected response times.
System Requirement Specification
- Developers create a document that outlines the complete system requirements based on stakeholder needs.
- It includes software, hardware, system interfaces, performance, security, and compliance requirements.
Software Requirement Specification
- This expands on all software requirements, detailing functionality, features, and behavior.
- It formalizes functional and non-functional requirements, user interface design, interaction flow, and system interfaces.
- The final document may include input/output formats, data handling, performance metrics, and design considerations.
Design Phase
- Software design involves determining how to construct the software system to meet expectations, focusing on architecture, components, interfaces, database, and interactions.
- The objective is a robust, maintainable, and scalable system through translating requirements into a structured solution.
Architectural (High-Level) Design
- This stage defines the overall system structure including components, interactions, and external interfaces to fulfill functional and non-functional requirements.
- The system architecture document includes high-level components, patterns, external interfaces, technologies, and frameworks.
Component (Low-Level) Design
- The system is described in terms of modular components corresponding to specific business processes or units of functionality.
- Considers component structure, scope, functionality, and interactions, along with reusability.
- The low-level design document details algorithms, data structures, and interactions, emphasizing high cohesion and low coupling.
Interface Design
- The system will communicate with other systems via the Application Programming Interface (API)
- It is also critical to be user friendly with the User Interface (UI) Design
- API documentation describes the APIs and how to use them.
- UI documentation ensures consistency in design
Database Design
- Data structures decided, and how they are stored, retrieved and managed
- Data integrity is preserved
- The design document covers data model, database entities, relationships, normalization, constraints, and data security.
Coding (Implementation)
- Code and related implementation documents are developed, with source code comments and version control logs for tracking.
Testing
- The code is tested against the software requirements specification
- Test includes unit testing, integration testing, system testing, and acceptance testing
- The test documents include test plans, cases, scenarios, execution reports, and traceability matrix
Deployment
- The software is delivered to the customer after testing
- A deployment plan which allows for user install; manually, or automated
- This is supported with both a user and installation guide
Maintenance
- Ongoing support and support for enhancements
- This is provided with an operations and maintenance manual
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Study Notes
Something went wrong