Answer :The four most important characteristics of professional software are 1.Acceptability,
2.Dependability and Security,
3.Efficiency, and
4.Maintainability.
Other examples of quality attributes are
1. the software's Performance,
2.Scalability,
3.Reuseability,
4.Testability, Reliability, and Availability.
Q2. list the Objectives/Challenges of Software Engineering:
Answer:
- Maintainability –
It should be feasible for the software to evolve to meet changing requirements. - Efficiency –
The software should not make wasteful use of computing devices such as memory, processor cycles, etc. - Correctness –
A software product is correct if the different requirements as specified in the SRS document have been correctly implemented. - Reusability –
A software product has good reusability if the different modules of the product can easily be reused to develop new products. - Testability –
Here software facilitates both the establishment of test criteria and the evaluation of the software with respect to those criteria. - Reliability –
It is an attribute of software quality. The extent to which a program can be expected to perform its desired function, over an arbitrary time period. - Portability –
In this case, the software can be transferred from one computer system or environment to another. - Adaptability –
In this case, the software allows differing system constraints and the user needs to be satisfied by making changes to the software. - Interoperability – Capability of 2 or more functional units to process data cooperatively.
3. List the IEEE/ACM code of ethics?
Answer:
- Public > An example of acting in the public's interest is not to share any private information that the software engineer is privy to while working on a project.
- Client and Employer > A good software engineer will not let the needs of the client or the wants of the employer harm the public.
- Product > A good software engineer would not allow software to be released that they know is faulty and will crash.
- Judgement > An example of using good judgement is, if a software engineer is approached by a client that wants them to build software that causes airplanes to crash, the software engineer knows that they must decline since although that may be in the client's interest, it is not in the public's.
- Management > For example, Software engineering managers and leaders will not encourage employees to slack off when they are aware there is a deadline coming up.
- Profession > For example, software engineers will not accept payment for inadequate software that they have admitted will not work as intended. This would reflect badly on other software engineers.
- Colleagues > An example of following this clause would be a software engineer not stealing their coworkers code without permission.
- Self > For example, a good software engineer will keep up with changes in technology and encourage others to do the same.
4. What can be the privacy implications if countries try to keep a track of their citizens and their actions?
Answer:
There can be following violation of privacy if countries keep a track of their citizens and their actions:
a. Search and Seizure of Digital Property
b. Profiling of Marginalized Groups
c. Bio metric Dangers
d.censorship
e.business surveillance
Lab Assignment No2:
1. Compare the planned and the agile process of software development?
Answer:
Difference between Traditional and Agile Software Development:
S. No. | Traditional Software Development | Agile Software Development |
---|---|---|
1. | It is used to develop simple software. | It is used to develop complicated software. |
2. | In this methodology, testing is done once the development phase is completed. | In this methodology, testing and development processes are performed concurrently. |
3. | It follows a linear organization structure. | It follows an iterative organizational structure. |
4. | It provides less security. | It provides high security. |
5. | Client involvement is less as compared to Agile development. | Client involvement is high as compared to traditional software development. |
6. | It provides less functionality in the software. | It provides all the functionality needed by the users. |
7. | It supports a fixed development model. | It supports a changeable development model. |
8. | It is used by freshers. | It is used by professionals. |
9. | Development cost is less using this methodology. | Development cost is high using this methodology. |
10. | It majorly consists of five phases. | It consists of only three phases. |
11. | It is less used by software development firms. | It is normally used by software development firms. |
12. | Expectation is favored in the traditional model. | Adaptability is favored in the agile methodology. |
13. | Traditional software development approaches are formal in terms of communication with customers. | Agile software development methodologies are casual. In other words, customers who work with companies that utilize Agile software development approaches are more likely to interact with them than customers who work with companies that use traditional software development methodology. |
14. | For starters, typical software development approaches employ a predictive approach. There is full specification and prediction of the software development processes because the product is produced through rigorous and explicit planning. Changes are not permitted in this technique because the time and cost of project development are fixed. | Here, a flexible approach is used as the software development approaches are founded on the notion of continual design improvement and testing relies on team and client feedback. |
15. | Examples-
| Examples-
|
16. | Models based on Traditional Software Development-
| Models based on Agile Software Development-
|
2. Give examples of 4 types systems that can be developed using the planned approach and the
agile process approach?
Answer:
3. Give reasons for choosing the type of approach for the particular kind of project?
Answer:
4. Discuss the advantages and disadvantages of 1. Waterfall Model Approach 2. Incremental
Approach 3. Reuse Oriented Software Engineering
Answer:
3. Reuse Oriented Module
Lab Assignment No3:
1. What are the various activities that are part of the requirement engineering process?
Answer:
Requirement Engineering is the process of defining, documenting and maintaining the requirements. It is a process of gathering and defining service provided by the system. Requirements Engineering Process consists of the following main activities:
- Requirements elicitation
- Requirements specification
- Requirements verification and validation
- Requirements management Read more
2. What are the various activities that are part of the software design process?
Answer:
There are four basic key process activities:
- Software Specifications –
In this process, detailed description of a software system to be developed with its functional and non-functional requirements.
- Software Development –
In this process, designing, programming, documenting, testing, and bug fixing is done.
- Software Validation –
In this process, evaluation software product is done to ensure that the software meets the business requirements as well as the end users needs.
- Software Evolution –
It is a process of developing software initially, then timely updating it for various reasons.
3. What are the various stages of software validation?
Answer:
- Testing is the most commonly used V & V activity and includes the following stages:
- Development or component testing: individual components are tested independently; components may be functions or objects or coherent groupings of these entities.
- System testing: testing of the system as a whole, testing of emergent properties is particularly important.
- Acceptance testing: testing with customer data to check that the system meets the customer's needs.
4. What are the various techniques for coping with change?
Answer:
- System prototyping, where a version of the system or part of the system is developed quickly to check the customer’s requirements and the feasibility of design decisions. This is a method of change anticipation as it allows users to experiment with the system before delivery and so refine their requirements. The number of requirements change proposals made after delivery is therefore likely to be reduced.
- Incremental delivery, where system increments are delivered to the customer for comment and experimentation. This supports both change avoidance and change tolerance. It avoids the premature commitment to requirements for the whole system and allows changes to be incorporated into later increments at relatively low cost.
Special offer for you
Grab Course worth Rs4499 for Rs1349/- Only , Wondering How ?
Just follow the steps :
1. Grab any Industry ready Courses From Internshala
2. Use Internshala Exxtra discount Coupon Code : ISRP14182585
3. MSM Benefits :Get
Note : you will Get RS 150 discount using Coupon code