CS302: Software Engineering
Learn how to apply an engineering approach to computer software development by focusing on software principles, lifecycle models, requirements and specifications, architecture and conceptual model design, detailed design, implementation, validation and verification, quality assurance, configuration control, project management, tools, and environments.
CS302
Course Version
CS302 (2024.A.01)
Unit 6: Software Design
After requirements and analysis, a software engineer must transform the analysis model into a design model that can be implemented in a specific hardware and software environment. In this unit, we will discuss design and architecture design principles. Just as there are various methodologies for requirements analysis, we will look at three corresponding methodologies of the design model (data-oriented, process-oriented, and object-oriented). As you review this unit, focus on the object-orient...
Test Plan for ABC Video Order Processing
This section shows the elements of a software test plan and how one company designs testing to validate that specification, design, and coding mesh with the functional and non-functional requirements of the system. The development of a test plan takes into consideration the programming language. Selection of a programming language can involve considering older languages, like COBOL, first used in 1960. Suppose a company has legacy business systems and a project application is well known to th...
Introduction
The role of the software engineer (SE) differs from the project manager in that the SE provides technical expertise, while the project manager provides organizational expertise. Depending on the size of an organization and project team, one person might perform both roles. Small project teams (Le., less than five people) and organizations with limited software development staff (Le., less than 10 people) expect one person to assume both software engineer and project manager roles. The larger ...
Introduction
Nothing is rarer in information systems development than an application without changes. Users forget requirements and remember them late in the design. The business changes. Bugs get fixed and require documentation. Change occurs in all phases and all levels of application development. Procedures to manage change, therefore, are necessary to maintain sanity and order on the project team. The three major types of change in an application's life cycle-requirements, software, and documentation-...
Introduction
There are two kinds of testing strategies. The first type of strategy relates to how logic is tested in the application. Logic testing strategies are either black-box or white-box. Black-box testing strategies assume that module (or program or system) testing is concerned only that what goes in comes out correctly. The details of logic are hidden and not specifically analyzed. Black-box strategies are data-driven, which means that all test cases are based on analysis of data requirements for ...
Test Strategy
DEVELOPING A TEST STRATEGY There are no rules for developing a test strategy. Rather, loose heuristics are provided. Testing, like everything else in software engineering, is a skill that comes with practice. Good testers are among the most highly skilled workers on a development team. A career can revolve around testing because skilled testers are in short supply. As with all other testing projects, the strategy should be designed to prove the application works and that it is stable in its o...
Single Interview
There are seven techniques we use for data gathering during application development. They are interviews, group meetings, observation, temporary job assignment, questionnaires, review of internal and outside documents, and review of software. Each has a use for which it is best served, and each has limitations to the amount and type of information that can be got from the technique. The technique strengths and weaknesses are summarized in Table 4-2, which is referenced throughout this section...
Showing 10 results