answersLogoWhite

0

📱

Software Engineering

Software engineering is the process of applying well-developed techniques and practices in order to create new software products. Questions about everything from design patterns to requirements and specification belong here.

1,663 Questions

Which technology is remarkable in electronics field?

A What is remarkable is the search to implement solar components into cloth since our military uses an awfully amount of battery to run its communication equipment. That would be remarkable

How many spanning trees can be drawn with 5 labeled vertices?

No of spanning trees in a complete graph Kn is given by n^(n-2)

so for 5 labelled vertices no of spanning trees 125

With what degree can I get the best computer jobs?

Most people who have a job working with computers have a degree in computer science or software engineering. software engineers use math and computer science to create and design software for our computers.

Is it possible to assess the quality of software if the customer keeps changing what it is supposed to do?

I will answer this as the person responsible for testing.

The customer can do what they want. My job is to tell them what is possible. I may not be able to test/retest in the given time. I then need to inform the customer. The customer can still go ahead with releasing the software.

There is another very important part to this. When I am part of a test team, in these situations, I tell the testers that they can’t later say, ‘..I told you so..’. What this means is if they think there is a significant risk, they need to inform the customer. They need to know the risk. It is not good enough to say, ‘I don’t know…’

Here is an example:

On one of my projects, a manager said, ‘we need to release next week’. But we hadn’t started testing the 64-bit version. Manager said, ‘I don’t care’.

At that point, I said, ‘let me get back by the end of the day if we have any reservations.’ I then told him that we will make sure basic functionality works. If there are blocking issues, we will revisit. I also made a list of what we will test and what we won’t. We worked together to refine the list.

It’s very important that I will never blame the manager for his decisions. I was part of that decision. If I felt strongly about risk, I would speak up. If I didn’t speak up, it was my mistake, not his.

Just to repeat, you dont’ have an option to say, ‘I don’t have time’. What you need to say is, ‘In the given time, I can test X. This then leaves the risk that customers may use this feature and find problems.’

What Provide three examples of software projects that would be amenable to the waterfall model. Be specific.?

Official tender with closed set of requirement and fixed price. Usually tender covers up to X% of “changes and additional requirements”, so small stuff can be changed and added later, but everything beyond that - nope.

You get an Excel or Word with several thousands of requirements (big and complex and trivial, with one line can cost zero and other can cost $1M to develop), you estimate the effort, add risk factors, and submit your proposal together with technical and managerial descriptions.

Good luck.

Anything that both satisfies their requirements as-written, and fits into technical description that was submitted will (must) be accepted by the customer - or they will have to bargain like “let’s cancel this requirement, but instead please implement that one”.

For governmental / military project managing all those requirements, what was amended, what was added, who owes what to whom, how it affects timelines, subcontractors (sometimes they are enforced by the customer and paid directly by him), is a full time and very non trivial job.

There are many types of projects that can’t be managed in Agile way, or delivered in Agile way (they still can be developed in Agile way, as it is internal matter of the dev team).

Customer won’t see anything before first review (that was requested as part of the tender, and was budgeted for).

Oh, forgot the reviews.

Interface Design Review, Integration Design Review, HMI Design Review, Safety Committee, Cyber Committee, Field Experiment Design Review, most of them come twice (preliminary and critical), for some you can add third - “Readiness Review”.

For big project that are delivered in phases you do the whole set two-tree times, for features of each phase (obviously first set takes the most effort).

Don’t forget logistics - spare parts program, operator training, technician training, certification programs, delivery of trainers and simulators.

Multiple pair-integration sessions, separate entity that manages integration and coordination of all systems (not only software. To be able to deploy in X hours your software must boot up, but hardware must be able to work for some time even before AC lowered temp in the shelter to the “long-running-threshold” value. Think about hundreds of interdependencies).

Everything must be coordinated.

Then come field tests. Test grounds must be booked, plans reviewed, safety issues validated, roads and air space closed, all the stuff shipped, engineers and technicians sent over (sometimes hundreds of them). To prepare all that takes months if not years. and usually you can’t “move” it in time. If something is not ready - or experiment will be delayed (very big issue), or this feature won’t be tested at all (bad), or experiment plan will be amended to allow testing of whatever can be tested (non ideal, but acceptable).

Then, when everything works and you deliver it - sometimes it is only IOC - initial operational concept. That means - pilot version. Customer will play with it for a year or two, and then order more - with changes, both in hardware and software, to cover for all deficiencies discovered in this “evaluation” period.

So trust me, there are many projects where “push-to-production” just doesn’t have a chance.

You can’t “eventually” get Air Traffic Control system (and I am talking about ground component only, not real avionics) if you start with something that can handle one plane that flies on the straight line, and continuously improve it.

You can’t deliver a “minimally valuable product” for nuclear station management system, and improve it with two-weeks sprints.

You can develop it in this way “internally”, you can give it to QA so they will test only very specific stuff (use-cases and scenarios) that is already implemented, but you never give anything to the customer until is passes FAT, SAT and full integration tests.

Version release process (you know, from check-in through Jenkins etc) can take months, and cost hundred thousands of $$$ (and I don’t include field tests, let’s assume everything can be done in QA/Integration laboratories).

Cost is not an exaggeration:

$1M is cost of employing 6–8 engineers for a year. So if version validation takes 2–3 months (different subcontractors, different countries, supervision from the customer and various certification authorities), and all over there are 10 people working on that (system engineers, programmers, part of managerial effort goes into that, QA people, integrators) you easily get into $K250–300 area for a main contractor. Add to it internal expenses of the customer (it cost them too to get a new version, redeploy, train, etc) and subcontractors, and you are in half-million area. This is for small “maintenance” release, not major delivery of significantly new functionality.

So yes, there are projects that are rather be done using Waterfall approach.

Three Things You Need to Know before You Pursue a Graduate Degree?

Pursuing a graduate degree is a big commitment as it will to a very large extent determine your career path. Also, applying for graduate programs is no easy work so do plan carefully before deciding on attending graduate school.

1. The structure of a graduate degree program is very different from that of an an undergraduate degree. For example, graduate students are required to conduct their own research, and sit for a written and an oral exam two years after then enter the program. In some universities, the students would have to construct their own writing list, and the materials on that list will be tested in the exams. This structure requires a lot of self-discipline as the professors see graduate students as their peers and thus tend to be more hands off.

2. A graduate degree is an expensive investment. Most master’s program do not provide much funding to the students so before enrolling to a program unfunded, students have to evaluate whether it is worth it to take out a loan. In humanities, a master’s degree is not particularly helpful for career development. However, most a master degree in engineering, computer science, and economics will allow the graduate to quickly advance their career. Almost all PhD programs provide at least some, if not full, funding to their students, in the form of teaching/research stipends or fellowships.

3. Do enough research to gain a better knowledge of the discipline before and after the graduate application period. The quality of graduate programs varies discipline by discipline, so it is important to look up sources such as the National Research Council to determine which universities have the leading programs in the field. After the application some students may get multiple offers from different graduate schools. At that time, it is important for them to visit the campuses, talk to the graduate students there, and ask the faculty members questions regarding funding, teaching load, and research.

How integration testing is performed?

Integration testing refers to the process of testing just how well integrated several software components are working together. Both the individual elements as well as the system as a whole are tested via data inputs.

What is scansoft omni page pro 12.0?

ScanSoft was acquired by Nuance Software about 4 years ago. The OmniPage software performs OCR - Optical Character Recognition - to convert scanned document images into editable documents.

What is a software development model?

There is nothing like a "best" software development model. However, let us how it has evolved. Conventionally, everybody was using the waterfall model, where you start with requirements gathering, then analysis and design, architecture, coding, testing and maintenance. All these were done sequentially. But then, the characteristics of software is different from something like a "building construction". There are different set of problems: 1. Requirements may not be clear. 2. Users may not be able to tell or the developers may not be able to understand, the "real requirements" 3. A particular design may not suite the chosen architecture 4. Users will "ask for more" when they see the software. 5. It is important we "attack" the most risky items first. 6. Testing cannot be an activity at the end. All these prompted a spiral model, or what is referred to as "iterative" and "incremental". In fact Unified Modeling Language (UML) which is being commonly used now is closely related to iterative and incremental process. For most of the modern software development efforts iterative and incremental process suits well.

Why algorithm is so important in software development?

Programs have many algorithms. At the start of the development process what a system has to do needs to be understood. That will lead to the design of those algorithms. Individual alogorithms have to be designed accurately. It is important that they work correctly so that diiferent parts of a program and a program as a whole works, and a system works. Any errors in the algorithms will impact on the functionality of the system.

What major companies offer job employment for software testing?

Major computer companies, such as IBM and Microsoft offer job employment for software testing. A large proportion of these jobs may be based in overseas locations such as India.

Is there a website that provides information on personal software testing?

Yes there are websites that provide information on personal software testing. Some of these websites are 'Software-Testing', 'Wikipedia' and 'Software Testing Fundamentals'.

What is the purpose of a use case?

A use case is a list of steps used to achieve a goal in software and systems engineering. It defines interactions between a role (known as an "actor") and a system.

In software development what is the meaning of obfuscated?

The word obfuscated is a term that is used in the field of software development. In software development, the meaning of the word obfuscated is to conceal the actual meaning of something.

What is test-driven development in relation to software?

Test-driven development is the repetition of a short development cycle in which the developers write test cases which initially fail. They then rewrite it to meet the necessary standards. Shortened form is TDD.

How many advantage of software engieering?

Software engineering refers to the sound engineering principles that results in a technically and economically sound software product. Software engineering helps us to divide the work in different phases so it can easily done.

What is called reinsurance?

When we go for insurance , the insurance have a time period for which it will be valid. When we want to extend the time period of the insurance,we have to do reinsurance.

Why analysis stage of software engineering consider so important?

It is by far the most important stage. It is at that stage that it is established what the software is meant to do. If you don't know what the software is going to do, then you can't create it. If you don't get the details of what it is meant to do correct, then when the software is produced it may not do what the user wants. For big systems there is a lot of details to be established. An existing manual system may be being replaced by a software system. So it is important to understand to the finest detail what exactly happens in the manual system. That can take weeks, even months. All kinds of questions need to be asked and answered. The analysts need to know what happens at every stage of the process.

Later in the stages of software engineering the designers may still find they have to go back and get more details so that they know what is meant to happen in certain situations. Any mistakes that get into the system can cause a lot of problems later and are harder to fix and slower to fix. By asking the correct questions and getting the right information at the analysis stage, those subsequent delays can be avoided. So the analysis is critical to get correct.

What are the shortcomings of dfd as a tool for performing structured analysis?

Data Flow Diagram explains the logic behind the data flow within the system. Dfd performs an implicit functional decomposition of the system. But the shortcoming is the DFD is time consuming process.

What is an iterative process model?

a model that goes back to an earlier step in the process

What is the purpose of sap software in engineering?

SAP is system administration and maintenance. You will install the system, patches, updates, schedule and monitor background jobs.

What does case of tools have to do with software engineering?

CASE = Computer Aided Software Engineering

Usage: CASE tools, the software programs used by an engineer as tools to aid software engineering tasks.

it is NOT a case of tools.

What is ieee software engineering?

IEEE gives software engineering definition as :-. The application of a systematic , disciplined quantifiable approach to the development, operation and maintenance of software that is the application of engineering to software.

What is software process and why it is difficult to improve it?

Software process is a process by which any organization can develop their software by some specific steps. It is difficult to improve because, legacy system follows this steps for years.