Software engineering |Software programming fundamentals |assignment for cs engineering students

https://images.squarespace-cdn.com/content/v1/57a2d102893fc0ca1fad85f0/1472413363219-YNQB47NW9C50EBI58WJU/image-asset.jpeg?format=500w 
Q1. What are the four important attributes that all professional software should have? Suggest other attributes also?

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:

  1. Maintainability – 
    It should be feasible for the software to evolve to meet changing requirements.
  2. Efficiency – 
    The software should not make wasteful use of computing devices such as memory, processor cycles, etc.
  3. Correctness – 
    A software product is correct if the different requirements as specified in the SRS document have been correctly implemented.
  4. Reusability – 
    A software product has good reusability if the different modules of the product can easily be reused to develop new products.
  5. Testability – 
    Here software facilitates both the establishment of test criteria and the evaluation of the software with respect to those criteria.
  6. 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.
  7. Portability – 
    In this case, the software can be transferred from one computer system or environment to another.
  8. Adaptability – 
    In this case, the software allows differing system constraints and the user needs to be satisfied by making changes to the software.
  9. 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 DevelopmentAgile 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-

  • Office productivity suites
  • Data management software
  • Media players 
  • Security programs 

Examples-

  • Sky
  • Phillips
  • JP Morgan Chase
16.

Models based on Traditional Software Development-

  • Spiral Model
  • Waterfall Model
  • V Model
  • Incremental Model

Models based on Agile Software Development-

  • Scrum
  • Extreme Programming (XP)
  • Crystal
  • Dynamic Systems Development Method (DSDM)
  • Feature Driven Development (FDD)
  • Adaptive Software Development (ASD)

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: 

Advantages of waterfall modelDisadvantages of waterfall model
This model is simple and easy to understand and use.Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage.
It is easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process.No working software is produced until late during the life cycle.
In this model phases are processed and completed one at a time. Phases do not overlap.High amounts of risk and uncertainty.
Waterfall model works well for smaller projects where requirements are clearly defined and very well understood.Not a good model for complex and object-oriented projects.

Poor model for long and ongoing projects.

Not suitable for the projects where requirements are at a moderate to high risk of changing.

Advantages of Incremental
Approach
Disadvantages of Incremental
Approach
1. Distribution of modules makes the SDLC easier.1. Need very good planning over the model.
2. This model is Cost Efficient.2. The module breakage should be properly planned.
3. Resources are properly utilized as per skill set.3. The whole system needs out to be known well prior to going for the modules.
4. Smooth and Good Learning Graph.4. The Total cost sometimes is high.
5. Comparatively leads to faster product delivery.5. Different modules can need a different interface that can be a new setup sometimes.
6. Risk can be managed easily.6. Pipelining or release can be delayed sometimes in case of any cross-module dependency.
7. Different release models can be put.7. The end-to-end design diagram should be very clear to the developer.
8. Functionalities are achieved, analyzed, and checked thoroughly throughout.8. Early definition of the module needs to do.
9. Exposure to new technologies.
10. Previous Model architecture can be reused further and save time.
11. Errors can be easily recognized throughout.
12. Easier to debug.
13. Functionality wise release
14. Better Support throughout the SDLC.
15. Fair Idea about the functioning of each module and integration techniques.
16. Version Modification is easy.
17. The core functionalities development can be achieved as per client and product usage.

 3. Reuse Oriented Module

Advantages of Reuse Oriented ModuleDisadvantages of Reuse Oriented Module
It can reduce total cost of software development.Reuse-oriented model is not always worked as a practice in its true form.
The risk factor is very low.Compromises in requirements may lead to a system that does not fulfill requirement of user.
It can save lots of time and effort.Sometimes using old system component, that is not compatible with new version of component, this may lead to an impact on system evolution.
It is very efficient in nature.


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: 

  1. Software Specifications – 
    In this process, detailed description of a software system to be developed with its functional and non-functional requirements. 
     
  2. Software Development –
    In this process, designing, programming, documenting, testing, and bug fixing is done. 
     
  3. 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. 
     
  4. 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: 

  1. 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.
  2. 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.

 
 
 
 
Also See : click here to read /avail similar Offers 
-------Suggested--------

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 Flat Rs50  Cashback

 ENROLL NOW

Note : you will Get RS 150 discount using Coupon code 



Post a Comment

0 Comments
* Please Don't Spam Here. All the Comments are Reviewed by Admin.

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Learn More
Accept !