This essay has been submitted by a student. This is not an example of the work written by professional essay writers.
Uncategorized

Concept of Software Engineering as a Discipline

Pssst… we can write an original essay just for you.

Any subject. Any type of essay. We’ll even meet a 3-hour deadline.

GET YOUR PRICE

writers online

Task 1

Concept of Software Engineering as a Discipline

Software Engineering is a systematic process which gathers requirements of users as well as design, build and test software application. Furthermore, through the help of software programming language, this process fulfills customer’s demands. Additionally, software engineering applies engineering principles to create large software projects useful to support different systems for businesses and organizations, respectively.

Software engineering (SE) only focuses on principles that are used to create higher quality software instead of post-deployment activities of software maintenance and evolution process (de Lemos et al., 2011). It means the concept of SE is completely based on the creation of a software product theoretically. For example, software code could be full of software bugs that cannot be fixed over the period (Stephens, 2015). Hence, with applying software engineering principles, the bugs or errors could be removed for creating a better feasibility option.

As a discipline, software engineering is used to create and develop different types of applications for businesses and organizations. Some of them include system software, application software, engineering software, product line software, embedded, and web applications (Singh, 2019). System software usually designs software that is used inside the computer, while application software is used for offering different user applications like word, calculator, and paint 3D.

Differentiate Software Engineer and Programmer

Both software engineer and programmer fall under the category of Information technology specialist who works in the industry. However, there are a few differences that bring variety to their designations.

  • Software Engineer is an individual who applies principles of Software engineering to design, develop and test software through computers; whereas, a digital production output identified through programming languages or written pieces of code is represented through skill experts known as a programmer (Kim, 2018). Henceforth, the authority of engineers and programmers is the same but differs in only a specific skill set.
  • Another difference is based on interaction with customers or clients who assign software project development. A software engineer has frequent interaction with the client as per his requirements on resources, investments, budget, and assesses any problems which occur. On the contrary, programmers do not interact with the client directly; however, given instructions for writing software code on the specific module (Raphael, 2016).
  • Software engineers know software project requirements on which they maintain reliability and efficiency. But programmers are usually experts on certain computer languages and either work on debugging existing program code or create new software code through libraries and software development tool (Raphael, 2016).
  • Software engineers could be team leaders, team managers, testers, subject matter experts; still, programmers are language-oriented and have the designation of computer programmers only.

Features of Software Engineer

The software engineers are an integral part of any software development project and have the following features.

  • Collaboration in the software development process, including analysis, design, requirement allocation, component development and integration, validation, verification, and retirement of the system (Bourque and Fairley, 2014).
  • As a component specialist of software components, including UI design, communication, networking, and database design (Bourque and Fairley, 2014).
  • Adopt existing modules of organization and include new modules as per customer’s needs.

Task 2

Compare and Contrast Software Development Lifecycle Methodologies

Waterfall Model

The waterfall model is the most popular and oldest methodology for the software development process. As the name suggests, it is based on the concept of the waterfall that flows towards downwards. Hence, the model is noniterative and works after the first stage is completed, followed by the next stage. The diagram below explores six stages of the SDLC process that is applied from raw requirements to the final software product.

Stage:

The six stages of SDLC include requirement analysis, requirement specification, designing, implementation, testing, and integration, as well as operations and maintenance (Darwin, 2016). In the first step, all necessary requirements of the software project are collected from the client. Second, the project specification document is created as per the requirements of the user. The designing step will use unified modeling language to create system interactions for different software modules, respectively. The implementation is a process where modules are written in the form of software code. Next, testing checks for issues, software bugs, or errors that come into the system. Finally, the project is ready for going live, and operations are controlled in the last step.

Features

  • Step by step approach that is systematic to plan software development.
  • Supports different tools and methods of software engineering processes.

Strength

  • Easily adaptable due to being simple and clear.
  • Users could understand the model at the time of the software development process.
  • It follows a structured and systematic approach for dealing with complex projects.
  • The stages are well defined and planned for a smaller software project.
  • After each stage, the verification process is conducted so that errors could be removed as per client choice.
  • Each stage has allocated tasks that complete one goal at a time making software project consistent.

Weakness

  • Once the stage is completed, then no changes for new requirements is possible.
  • It is not suitable for large size projects due to being complex and unstructured.
  • No flexibility, costly, and expensive for companies to afford as well as deliver products extremely late.

Suitable Type of Application Projects: The large applications, including management systems, invested with billions from the client.

 

 

Source (Darwin, 2016)

Spiral Model

The spiral model is a combination of elements of both design and prototyping-in-stages, to achieve advantages of top-down and bottom-up concepts (Alshamrani and Bahattab, 2015). This model of development combines the features of the prototyping model and the waterfall model. The spiral model is favored for large, expensive, and complicated projects.

Stage

In this model, there are four stages in which the spiral model works and completes a software project.  Planning is the first stage, which includes understanding for requirements of the customer related to the system. Furthermore, continuous communication between the users and system analyst decides what will the system requirements and functionalities. In the second stage, risk analysis is done to identify risks. It is a process which is undertaken son that risks are identified, and alternative solutions are obtained (Alshamrani and Bahattab, 2015). After this step, a prototype is created at the end of the sample. The third stage is development or engineering where software product is tested and removed from bugs. The last stage is the evaluation phase, in which users can evaluate the project outcome until now. As it is spiral, a new round will be created to create another set of project requirements.

Feature

  • The spiral model offers support against unknown risks that occurs whenever a software project begins.

Strength

  • The critical risks are already discovered before, and thus estimation for budget and schedule seems realistic and approachable.
  • The developers are involved in a software project from the very beginning.
  • The software product is built into phases, and thus it is easy to manage risk and develop the product.

Weakness

  • Require special skills for risk evaluation and making an assumption with risk analysts.
  • A huge investment of cost and time is needed for reaching the final software project.
  • The reusability is not possible for a software project as a prototype is customized every time.

Suitable Type of Application Projects: Web-based application goes through different kinds of risks. Hence, the spiral model is perfect to be used for the web-based software application projects (Bhosale, 2014).

 

Prototyping Model

This model creates a prototype for building, testing, and reworking if it is not appropriate and remodeling so that the final result is obtained (Alshamrani and Bahattab, 2015). It is similar to the waterfall model and has six stages of the SDLC process. However, user evaluation is another step where the client makes approval or discards any software system if it feels incomplete.

Stage

There are six stages of prototyping model through which all the software project is developed. In the first stage, requirements gathering and analysis occurs through which all the requirements from the client is acquired. Furthermore, after that analysis, the project is created with rough prototype creation. Additionally, the quick design is the second stage in which rough design for system interaction is created. For example, UML modeling has proceeded in the quick design for system requirements. The next stage is building a prototype that is created with a small module of the software product. In the fourth stage, initial user evaluation occurs in which the user evaluates the process and checks whether his requirements are fulfilled or not. The refining prototype is the fifth stage in which changes are made after the customer checks the rough prototype of the system. Thus, after customer feedback again, the prototype is refined and created for final output. The six-stage is implemented product and maintain in which the final version of the software product is created and maintain it as per organization needs.

Strength

  • The time cost is reduced, but if the programmer loses time to develop the prototype, then it consumes more time.
  • Customer involvement is improved and increased effectiveness.

Weakness

  • The confusion occurred between customers due to prototype and finished software system project differences.
  • The user objectives and goals are often misunderstood by the programmer.
  • The prototype building takes excessive creation time.
  • To implement rough prototypes, the cost is much more and makes software products very expensive.

 

 

 

Task 3

Unified Modelling Language

UML stands for Unified Modelling Language that represents a software product through structure, behavior, and business processes effectively. Furthermore, it offers better system visualization and documentation as well as easily implement programming language (Maylawati, Darmalaksana, and Ramdhani, 2017). There are two ways in which the view could be mapped through UML language, including structural and behavioral diagrams. The view represents a subset of the modeling diagram, which shows one aspect of the software product system (Rumbaugh, Jacobson, and Booch, 2005).

 

(Creately Blog, 2019)

Following UML diagrams represent the Island Hopper Airline Management system and it’s work processes.

Structural Diagram

  • Class Diagram

 

 

 

 

Behavioral Diagram

  • Use Case Diagram

 

 

  • Activity Diagram

 

Task 4

Pseudocode

  1. Admin Login

This code takes the admin login for various activities.

If the customer chose Option A then

Go to “Check Route Page”

Else If the customer chose Option B then

Go to “Customer Filling Detail Page”

Else If the customer chose Option C

then Go to “Check Booking for Customer.”

Else If the customer chose Option D

then Go to “Aircraft detail.”

Else

“Logout from System”

 

 

 

Task 5

Implementation Language: As the project includes object-oriented based software products, hence implementation languages will be completed on this concept. Two code for employee module with customer detail and booking detail is shown below in language C++ and Java.

Code Snippet C++

 

 

 

 

 

 

 

 

Code Snippet C#

 

 

 

 

 

 

 

 

 

 

 

References

Alshamrani, A., and Bahattab, A. (2015). A Comparison Between Three SDLC Models Waterfall Model, Spiral Model, and Incremental/Iterative Model. International Journal of Computer Science Issues, 12(1), pp.106-111.

Bhosale, S. (2014). Spiral Model: Applications in Web based Applications. International Journal of Computer Science, 2(6), p.1.

Bourque, P. and Fairley, R. (2014). Guide to the software engineering body of knowledge. 3rd ed. New Jersey: IEEE Computer Society.

Creately Blog. (2019). UML Diagram Types | Learn About All 14 Types of UML Diagrams. [online] Available at: https://creately.com/blog/diagrams/uml-diagram-types-examples/#ClassDiagram [Accessed 19 Feb. 2020].

Darwin, C. (2016). Waterfall Model of Software Development: A Sure Fire Practice for your Professional Software Needs. [online] Medium. Available at: https://medium.com/synapse-india/waterfall-model-of-software-development-a-sure-fire-practice-for-your-professional-software-needs-4c8997419800 [Accessed 19 Feb. 2020].

de Lemos, R., Giese, H., A. Müller, H. and Shaw, M. (2011). Software engineering for self-adaptive systems: A second research roadmap. In: In Software Engineering for Self-Adaptive Systems II. Berlin: Springer, pp.1-32.

Kim, M. (2018). Programmer Vs Developer Vs Engineer. [online] Medium. Available at: https://medium.com/shakuro/programmer-vs-developer-vs-engineer-91ef374e5033 [Accessed 18 Feb. 2020].

Maylawati, D., Darmalaksana, W. and Ramdhani, M. (2017). Systematic Design of Expert System Using Unified Modelling Language. In: The 2nd Annual Applied Science and Engineering Conference. Bandung: IOP Publishing, pp.1-8.

Raphael, M. (2016). Software engineer vs computer programmer: what’s the difference?. [online] Electronic Products. Available at: https://www.electronicproducts.com/Education/Career/Software_engineer_vs_computer_programmer_what_s_the_difference.aspx [Accessed 18 Feb. 2020].

Rumbaugh, J., Jacobson, I. and Booch, G. (2005). The unified modeling language reference manual. 1st ed. Boston: Addison-Wesley.

Singh, V. (2019). Different Types of Software with Examples. [Blog] WEB DEVELOPMENT. Available at: https://squareboat.com/blog/different-types-of-software-with-examples [Accessed 18 Feb. 2020].

Stephens, R. (2015). Beginning software engineering. 2nd ed. Indianapolis, IN: Wrox, a Wiley Brand.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  Remember! This is just a sample.

Save time and get your custom paper from our expert writers

 Get started in just 3 minutes
 Sit back relax and leave the writing to us
 Sources and citations are provided
 100% Plagiarism free
error: Content is protected !!
×
Hi, my name is Jenn 👋

In case you can’t find a sample example, our professional writers are ready to help you with writing your own paper. All you need to do is fill out a short form and submit an order

Check Out the Form
Need Help?
Dont be shy to ask