MS Rumi. Powered by Blogger.

Saturday 6 September 2014

Some important question before studying Software Engineering

By Unknown  |  03:50 No comments



Q1. Why we need software engineering?

Software engineering is need to make sure development of software systems (Large Software) that are
  • Reliable
  • Maintainable
  • Efficient
  • Meet the needs of customers
Production of system meets
  • Schedule
  • Budget

Q2. What is difference between Search and Research?



When someone searches, it finds something and that found something is again searched, you find something either new or missing or not there at all. So, searching something from something already searched is research in literally.

Q3. History of Software Engineering?


Mastering the Machine (1956–1967)
During this session Software Engineering was not been coined. The main reason of any part of software was to get exploitation of the limited hardware.  First compiler was defined and operating system was non interactive.  These primitive environments defined first low level CASE tools for editing, compiling, and debugging. Lack of software development and high risk was easily noticeable.
Mastering the Process (1968–1982)
First software crisis faced in this session and led to the birth of software engineering. Its aim was to improve productivity, quality and reduce risk. In this stage formal modeling introduced that enables implementation automation.  But for industry, this formal approach was unfeasible due to a lack of tools and training. Furthermore, formal methods become unmanageable for large system development. In conclusion, in this stage, the need to focus on predesign phases and the use of more or less formal models for software specification began to appear. A number of structured methods, such as Software Requirement Engineering Methodology (SREM) and the Structured Analysis and Design Technique (SADT) were developed allowing the development of specification documents for business management software.
Mastering the Complexity (1983–1992)
The up to then dominion of hardware over software ended. Personal computers arrived and opened the fields of computer applications. The software development process would now comprehensively address analysis and design from the specification. Graphical user interface and visual programming brought software closer to customers. The use of structured family and data modeling methodologies was extended . Several CASE tools facilitated software development. However, data modeling (database) and function modeling (structured methods) still followed separate paths. These two modeling paths converged in object-oriented (OO) methods like early on in structured methodologies, they were first introduced in coding and design, and finally in specification and analysis . This approach enables efficient reuse of object-oriented software and thus improves building software productivity.
Mastering the Communications (1993–2001)
The emergence of the Internet brought with it a new software concept. The decentralization of functions and data led to the rapid development and expansion of areas of computing, such as concurrent programming and distributed architectures, which up to then had been limited to a narrower context. In addition to client/server applications, and in general, any distributed system development, there was now a new engineering software discipline called Web engineering. Moreover, software development was viewed as an industrial process in which quality should be monitored. This requires an effective separation between process and product. Some tasks related to managing and improving both the product and process appeared as new SE components, such as CMM (capability maturity model) and CMMI (capability maturity model integrated) .
Mastering the Productivity (2002–2010)
Most software systems created in this stage are called management information systems. They were designed to be an important part of business management in large companies. This has led to a need for the methodologies to be adapted by increasing the abstraction levels in software engineering tasks up to the abstraction level in which the problem is described. New tools enabling analysis level programming, such as Model Driven Architecture (MDA), appeared in this stage. The other major significant period in this stage was marked by the emergence of agile methodologies. Agile projects focus on creating the best software to meet customer needs. This means that the development team focuses only on tasks and processes that provide the customer with added value in the product being created, improved, or implemented. The most popular methodologies are Extreme Programming (XP) and Scrum.
Mastering the Market (2011–…)
Now, there are new platforms for integration and interoperability between different information systems. The concept of Service Oriented Architecture (SOA) coined in the early decade is widely extended. It is based on the combination of basic services (own or outside) that provide the functionality at business level for a specific domain problem. These services are orchestrated to perform more complex tasks, becoming composite services. These ubiquitous real-time services can be sold as a product, which is the origin of Cloud computing. On the other hand, customers demand several applications to be used in their smartphones, tablets, or laptops. The applications (i.e., apps) are small programs that can be downloaded and installed on mobile devices that allow users to perform some tasks at the place that they are in any moment. They are grouped into virtual stores and many of them are free, so usually they are closer to marketing challenges than software development challenges. They tend to be more dynamic than traditional programs and are the ultimate expression of agile methods and MDA.

Q4.  Difference Between computer science and Software Engineering?

Computer Science
It is Science of Computers. Everything that is related to computers is covered in CS.CS basically involves research and development of both your hardware, software and different techniques involved with them e.g Networking, Artificial Intelligence and Cryptography. It also involves making NEW tools and technologies in the field of Computers and combination of computers with other subjects  i-e Use of computers to solve non-computer problems. Also, an important point to remember is whatever you do as a computer scientist, it becomes a part of your arsenal. You can build upon it in future. 
Software engineering SE
It deals with the application of computer science and software; to commerce or industry i-e How software effects the business objectives (Making something within reasonable time with use of reasonable labor and expenses etc). Apart from development it also deals with verification and validation e.g Software Product is according to customer requirements and according to specifications and standards.

Q5. Importance of Software Engineering in software houses?

In Software House developing large software is a complex and often difficult process requiring the synthesis of many disciplines. From modeling and design to code generation, project management, testing, deployment, change management and beyond, a UML (Unified Modeling Language) based modeling tool like Enterprise Architect has become an essential part of managing that complexity these all things are covered in software engineering.

Author: Unknown

Hello, I am Author, thanks for visiting my blog. Bookmark this....

0 comments:

E-mail Newsletter

Sign up now to receive breaking news and to hear what's new with us.

Recent Articles

TOP