LecSE.doc

Màu nền
Font chữ
Font size
Chiều cao dòng

Chapter 1

Explain software apps

-Software is an important component of an info system. It is another name for program. It consists of a step-by-step instruction that tells the computer how to do its work. The work or purpose is to convert data into info.

-Software may be applied in any situation for which a pre-specified set of procedural steps has been defined.

-The following software areas indicate the breath of potential apps:

+System software: is a collection of programs written to service other programs.

+Real-Time software: Programs that monitor/analyze/control real world event as they occur are called real-time software.

+Business software: Business info processing is the largest single software app area.

+Engineering and scientific software: have been characterized by “number crunching” algorithms.

+Embedded software: resides in read-only memory and is used to control products and systems for he consumer and industrial markets.

+Personal computer software

+Artificial intelligence software: makes use of noncommercial algorithms to solve complex problems that are not amenable to computation or straightforward analysis.

Write a definition of SE

SE is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.

Explain layer of SE (process, methods and tools)

SE is a layered technology.

-Process: The foundation for SE is the process layer. SE process is the glue that holds the technology layers together and enables rational and timely development of computer software. Process defines a framework for a set of key process areas (KPAs) that must be established for effective delivery of SE technology.

-Methods: SE methods provide the technical “how-to’s for building software. Methods encompass a broad array of tasks that include requirements analysis, design, program construction, testing, and maintenance. SE methods rely on a set of basic principles that govern each area of technology an include modeling activities and other descriptive techniques.

-Tools: SE tools provide automated or semi-automated support for the process and the methods. When tools are integrated so that info created by one tool can be used by another, a system for the support of software development, called computer-aided SE (CASE), is established.

Explain phases in the development of software

-Requirements engineering: The goal of the requirements engineering phase is to get a complete description of the problem to be solved and the requirements posed by and on the environment in which the system is going to function.

-Design: During the design phase, a model of the whole system is developed which when encoded in some programming language, solves the problem for the user. Simultaneously, a global structure is imposed through the introduction of modules and their interfaces. Finally, the problem is decomposed into manageable pieces are specified in very precise way.

-Implementation: we concentrate on the individual modules. Our starting point is the module’s specification. The result of the implementation phase is an executable program.

-Testing: is performed during the requirements engineering phase. During subsequent phases, testing is continued and refined. The earlier the errors are detected, the cheaper it is to correct them.

-Maintenance: After delivery of the software, there are often errors that have still gone undetected. In addition, some changes and enhancements are requested. Maintenance thus concerns all activities needed to keep the system operational after it has been delivered to the user.

Chapter 2

Explain process maturity levels

The five levels of software process maturity:

-L1-Initial: The software process is characterized as ad hoc, and occasionally even chaotic. Few processes are defined, and success depends on individual effort.

-L2-Repeatable: Basic project management processes are established to track cost, schedule, and functionality. The necessary discipline is in place to repeat earlier successes on projects with similar apps.

-L3-Defined: The software process for both management and engineering activities is documented, standardize, and integrated into an organization-wide software process used for developing and maintaining software.

-L4-Managed: Detailed measures of the software process and product quality are collected.

-L5-Optimizing: Continuous process improvement is enabled b quantitative feedback from the process and form testing innovative ideas and technologies.

Explain software process model

To solve actual problems in an industry setting, a software engineer or a team of engineers must incorporate a development strategy that encompasses the process, methods, and tools layers and the generic phases. This strategy is often referred to as a process model or a software engineering paradigm.

-All software development can be characterized as four distinct stages are encountered: status quo, problem definition, technical development, and solution integration.

+Status quo represents the current state of affairs.

+Problem definition identifies the specific problem to be solved.

+Technical development solves the problem trough the app of some technology.

+Solution integration delivers the results to those who requested the solution in the first place.

Define software process

Software process is characterized as ad hoc, and occasionally even chaotic. Few processes are defined, and success depends on individual effort.

Explain linear sequential model

The linear sequential model for SE, sometimes called the “classic life cycle” or the “waterfall model” that suggest a systematic, sequential approach to software development that begins at the system level and progresses through analysis, design, coding, testing, and maintenance. It is the oldest and the most widely used paradigm for SE.

-System/info engineering and modeling: SE and analysis encompasses requirements gathering at the strategic business level and at the business area level.

-Software requirement analysis: Analyst must understand the info domain for the software, as well as required function, behavior, performance, and interfacing.

-Design: the design process translates requirements into a representation of the software tat can be assessed for quality before code generation begins.

-Code generation: the design must be translated into a machine readable form. The code generation step performs this task and can be accomplished mechanistically.

-Testing: the testing process focuses on the logical internals of the software, assuring that all statements have been tested, and on the functional external, conducting tests uncover errors and ensure that defined input will produce actual results that agree with required results.

-Maintenance: reapplies each of the preceding phases to an existing program rather than a new one.

Explain prototyping model

The prototyping paradigm begins with requirements gathering. Developer and customer meet and define the overall objectives for the software, identify whatever requirements are known, and outline areas where further definition is mandatory.

-A quick design then occurs and leads to the construction of a prototype.

-The prototype is evaluated by the customer/user and is used to refine requirements for the software to be developed.

-Ideally, the prototype serves as a mechanism for identifying software requirements.

-The prototype can serve as “the first system”.

-Although problems can occur, prototyping can be an effective paradigm for SE.

Chapter 3

Explain incremental model

-The incremental model combines elements of the linear sequential model with the iterative philosophy of prototyping.

-The incremental model applies linear sequences in a staggered fashion as calendar time progresses.

-Each linear sequence produces a deliverable “increment” of the software.

Explain spiral model

-The spiral model, originally proposed by Boehm, is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model.

-It provides the potential for rapid development of incremental versions of the software.

-In the spiral model, software is developed in a series of incremental release.

-The spiral model is divided into a number of framework activities, also called task regions:

+Customer communication: tasks required to establish effective communication between developer and customer.

+Planning: tasks required define resources, timelines, and other project related info.

+Risk analysis: tasks required to assess both technical and management risks.

+Engineering: tasks required to build one or more representations of the app.

+Construction and release: tasks required to construct, test, install and provide user support.

+Customer evaluation: tasks required to obtain customer feedback based on evaluation of the software representations.

Chapter 4

Explain role of people in SE

-The most important element of a successful project.

-People factor is so important that the SE Institute has developed a People Management Capability Maturity Model (PM-CMM) for helping to attract, grow, motivate, deploy and retain the talent needed to improve their software development capability.

-The PM-MM defines the following areas for software people: recruiting training, selection, performance, management, career development, compensation (repay, return), organization and work design and team/culture development.

Chapter 5

Explain three types of metrics

-Process metrics: are collected across all projects and over long periods of time. Their intent is to provide indicators that lead to long-term process improvement. Private process metrics are known only to the individual or team concerned. Public process metrics enable organizations to make strategic changes to improve the software process.

-Project metrics: are used to avoid development schedule delays, to mitigate potential risks, and to assess product quality on an on-going basis. Every project should measure its input (resources), outputs (deliverables), and results (effectiveness of deliverables).

-Product metrics: focuses on the quality of deliverables, measurement of analysis model, the complexity of the design, which include internal algorithmic complexity, architectural complexity and the data flow complexity, code measures and the measures of process effectiveness.

Define size oriented metrics and function oriented metric

-As mentioned earlier, size-oriented metrics are a direct measure of software and the process by which it was developed. These metrics can include effort (time), money spent, KLOC (1000s lines of code), pages of documentation created, errors, and people on the project.

-From this data some simple size-oriented metrics can be generated:

+Productivity=KLOC/person-month

+Quality=defects/KLOC

+Cost=Cost/KLOC

+Documentation=pages of documentation/LOC

-Are not universally accepted.

Chapter 6

Explain steps involved in software estimation

This estimation method has three steps:

-Step 1: Design the system

+Typically it combines the team’s current thoughts on technical design with what was learned from carefully reviewing the known requirements.

+The design needs to be fleshed-out to the subsystem level, with each subsystem representing 20 to 40 days work.

+To attempt an initial design, it is necessary to have a statement of project scope.

+The initial design should be robust and complete

+Later revisions of the design, with the luxuries of time and more complete requirements can add technical elegance.

-Step 2: Estimate each part of the system (subsystem)

+After the design done, you are now in a position to run an estimation workshop that involves the individuals who will be doing the work.

+At least invite the project’s team leaders and/or other senior technical people.

+For larger projects, you may want to divide the estimation into several workshops.

+The estimation workshop should take one or two hours per subsystem.

-Step 3: Schedule the work

+Before promising a particular delivery date, you will nee to schedule the work that provides an excellent opportunity to get the whole development team involved in the project and committed to delivery dates.

Explain decomposition techniques

Decomposition techniques require a delineation of major software functions, followed by estimates of either (1) number of LOC, (2) selected values within the info domain, (3) the number of person-months required to implement each function, or (4) the number of person-months required for each SE activity.

Chapter 7

Define outsourcing

-This means contracting to someone else to develop components.

-SE activities are contracted to third party who does the work at lower cost and hopefully, higher quality. It is becoming very popular.

-However, there are things to consider:

+Can be cheaper for several reasons. The “supplier” may be able to do the work cheaper and you do not have to maintain as large a facility.

+Can be more expensive in the long run. By outsourcing you may gradually lose any in-house expertise you have and you lose some control over the project.

Chapter 8

Define software risk

When software related risks are analyzed, it is crucial to quantify the level of uncertainty and the degree of loss associated with each risk. In order to accomplish this, risks that are likely to be encountered are considered.

Explain reactive and proactive risk strategies

-Reactive risk strategies: The majority of software teams rely on reactive risk strategies. At best, a reactive strategy monitors the project for likely risks. Resources are set aside to deal with them, should they become actual problems.

-Proactive risk strategies: begin long before technical work is initiated. Potential risks are identified, their probability and impact are assessed, and they are prioritized by importance. Then, the software team establishes a plan for managing risk that will enable it to respond in a controlled and effective manner.

Define risk management

Once risks are identified and prioritized, it becomes clear which risks should be handling. Risk management is a way to manage risks. In other words, it concerns all activities that are performed to reduce the uncertainties associated with certain tasks, or events.

Chapter 9

Explain internal and external quality

-Internal quality

+Is the hidden part of the iceberg, i.e. program structure, coding practices, maintainability, and domain expertise.

+Bad internal quality will result in lost development time, fixes are likely to introduce new problems and therefore require lengthy retesting.

+Poor internal quality leads to high maintenance costs. In order to improve software quality, internal quality must be improved.

-External quality

+Is that which can be seen by customers and which is traditionally tested. Bad external quality is what can be seen: system crashes, unexpected behavior, data corruption, slow performance.

+Is a symptom whereas the root problem is internal quality.

Define software quality assurance

-Quality assurance can be summarized as “prevents defects early in the development cycle”.

-SQA is an activity that is applied throughout the SE process.

-SQA is a planned and systematic approach to ensure that software process and products conforms to the established standards, processes, and procedures.

-The goal of SQA is to improve software quality by appropriately monitoring both software and the development process to ensure full compliance with the established standards and procedures.

Chapter 11

Explain software testing principles

There are a few principles have to be observed:

-Testing should be based on user requirements. In order to uncover any defects that might cause failure of the program or system.

-Testing time and resources are limited. Avoid redundant tests.

-It is impossible to test everything. Because of the many different variables affecting the system and the number of paths a program flow might take.

-Use effective resources to test. This represents use of the most suitable tools, procedures and individuals to conduct the tests.

-Test planning should be done early. Because of it can begin independently of coding and as soon as the client requirements are set.

-Testing should begin at the module. The focus of testing should be concentrated on the smallest programming units first and then expand to other parts of the system.

-Testing should be conducted by an independent third party.

-The Pareto principle (80% of all errors will likely be found in 20% of the code) applies to software testing.

Define black box testing

-Black-box or functional testing knowing the specified function a product is to perform and demonstrating correct operation based solely on its specification without regard for its internal logic.

Define white box testing

-White-box or structural testing knowing the internal workings of a product, tests are performed to check the workings of all independent logic paths.

Chapter 12

Define software testing

A software testing strategy is a guide for the development organization, including software quality assurance and the customer, describing the steps to be conducted as part of testing, when these steps are planned and undertaken, and how much effort, time, and resources are required.

Explain purpose of software testing

-To demonstrate that the product performs each function intended;

-To demonstrate that the internal operation of the product performs according to specification and all internal components have been adequately exercised;

-To increase our confidence in the proper functioning of the software.

Chapter 13

Define class diagrams

-Class diagram, which depicts the decomposition of the system. A class diagram is a graph in which the nodes are objects (classes) and the edges are relationships between objects.

-The class diagram depicts the static structure of a system.

-The class diagram depicts the public interface of a single class ad the other classes, which it uses or is used by.

            Shape                                                  Circle

            MoveTo(Location);                              MoveTo(Location)

            Draw();                                                Draw();

            Erase();                                                Erase();

                                                                        Int Radius();

                                                                        Int radius();

                                                                        Location center;

-Each class is shown as a rectangle whose topmost portion contains the name of the class.

-Below the name of the class the methods of the class’s public interface are given.

Chapter 14

Define OOSE

Object oriented SE is a user-case-driven methodology. A use case represents a dialog between a user and the system. A use case is defined as “a particular form or pattern or example of usage, a scenario that begin with some user of the system initiating some transaction or sequence of interrelated events”

OOSE is divided into three phases:

-Analysis

-Construction

-Testing

Chapter 15

Define Responsibility driven design

-RDD is a dynamic methodology that emphasizes object behavior (responsibilities) and relationships with other objects (collaborations).

-RDD is a dynamic methodology because it finds the model objects on the basis of their behavior.

-RDD modeling process includes two phases: exploratory, analysis.

Chapter 20

Explain big bang approach

-The “Big Bang” approach, also known as the “Lump Sum” approach, replaces the entire system at one time

-Is often used by projects that need to solve an immediate problem.

-Advantages:

+The system is brought into a new environment all at once.

+No interfaces between old and new components must be developed.

+No mingled environment must be operated and maintained.

-Disadvantages:

+The result tends to be monolithic projects that may not always be suitable.

+For large systems, it may consume too many resources or require large amount of time before the target system is produced.

+Risk with it is high.

+This parallel operation may be difficult and expensive to do

+A major difficult is change control

Explain incremental approach

-The “Incremental” approach to re-engineering is also known as “Phase-out” that system sections are re-engineered and added incrementally as new versions or the system are needed to satisfy new goals.

-Advantages:

+The components of the system are produced faster and it is easier to trace errors since new components are identified.

+The customer an see progress and quickly identify lost functionality.

+Change to the old system can be easier dealt with.

-Disadvantages:

+The system takes longer to complete with multiple version that require careful configuration control.

+The entire structure of the system cannot be altered.

Bạn đang đọc truyện trên: Truyen2U.Pro

#doc#lecse