Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
I understand that Responsiveness of a website is linked to user-satisfaction, so it is usually a non-functional requirement. But also it is systems functionality so it is functional requirement too.
I am confused because it may be consider either functional or non-functional...
Functional requirements lists the operations or features that system must be able to do.
Non-functional requirements also known as qualitity attributes such as performance, security, usability is not a feature of the system.
To answer your question, Responsiveness is under the Performance requirements, therefore it is a non-functional requirement.
Don't think too much.
"... but also it is systems functionality... "
Consider a system in which a failure is defined as a certain functionality missing a deadline. In such cases one would be right to capture the time-sensitive nature of the function as a core system requirement i.e. include the deadline within the requirements definition and hence consider it a functional requirement.
In most cases though responsiveness is a non-functional requirement simply because there isn't any objective response-time requirement defined.
The audio-stream must play within 1ms of the video-stream - is a functional requirement.
Faster/Smoother the animations, the better - is a non-functional requirement.
Observe that the functional requirement places a concrete restriction that can be later used to evaluated the implementation using a pass/fail criteria. The non-functional requirement does not have any such implications on the system design/implementation.
In the context of preparing the design document for a website, unless a specific deadline is clearly defined for a particular scenario, classify "responsiveness" as a non-functional requirement.
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
I want to provide tests statistics of TDD usage in a company, so I need to identify which projects are using only TDD, or if there are tests code written after coding. I thought using time stamp file change info, but Does anybody have a better solution for this?
A pretty broad question, but I think there is actually a fact based answer.
That answer is: you can't solve social problems on the technical layer.
In other words: already your goal/requirement is flawed: you will not be able to generate those clear statistics. You might be able to apply some heuristics; but unless you get access to all information from all developer systems, timestamps wont help you. You see: the normal approach is to do some coding; and at some point release all of that into the version control system.
So, sometimes it might be clear from timestamps that X was written before XTest; but very often, X and XTest will be released into the library within one commit. Now - which one was written first?
Thus: start thinking on the "social" level first. Meaning: talk to the development teams. Ask them about their practices. And when they claim to do TDD; then look into their specific commit history and see if that tells you anything.
Usually following the Test Driven Development practice implies continuous repeating of small Red-Green-Refactor cycles. As #GhostCat stated, looking into the commit history is is an excellent point to check if the devs follow TDD principles. Every change in the production code should be reflected in a corresponding unit test.
You may also check the code coverage. The high coverage is not the goal but it can be a good indication if the TDD practices are followed.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I searched on Google, but didn't get straight answers that what are the advantages of Service Oriented Architecture?
Can someone please highlight some of the benefits of SOA?
The two most important (at least in a practical sense) are:
Small, manageable (i.e. maintainable) components.
Services can be distributed across different machines. This makes
the system highly scalable.
In other words: SOA is a good fit into the modern software development landscape with distributed teams and ever-changing requirements, be it functional or non-functional.
It gives great deal of re usability to your code and enormous power to the business as well.
Lets say you start creating an application for banking, now you need to create a mobile app for the same, and if that's not it you have to expose methods from your service to Master /Visa for transaction.
Now in the above scenario if application has been designed with SOA in mind, then lot of code is reused with added advantage of centralized deployment.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
My question is simple. Is the programming language Snobol4 still useful to provide a modern day solution for pattern matching, or has regex in other procedural languages pretty much wiped it out in application?
The pattern language is modeled on context free grammars,
with context sensitive extensions that provide full (type 0)
computational capabilities.
This is from an introduction originally written by Robert Dewar, creator of the SPITBOL implementation of SNOBOL-4. Since both references are in relatively new, and maintained libraries, I'd think that even though the pattern language is not part of, say, JavaSrcipt with its statistically many uses, or part of other modern languages, it might surprise users of REs in terms of speed and power.
That being said, SNOBOL-4 patterns have been criticized for leading to hard to understand programs, for using FENCE, not NOT (Farber? Gimpel?) and other phenomena that seem to have a come-back with Perl5 compatible "regular expressions", and ICU's. They, too, are rediscovering some effects of backtracking and anchors. R.E. Griswold, creator of SNOBOL-4, has later created the Icon programming language. It features generators and goal directed evaluation, thus taking backtracking to a level at which arguably search is more clearly expressed than one could do using the implications of complex patterns.
Insofar as this historic development is preceding today's "REs" growing in power, I'd say that SNOBOL-4 patterns offer something to the profession for evaluation, what to do again and what not to do again.
Say, do we need a BAL pattern in practice?
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
Its just a question out of my curiosity. Though generally considering the Framework and the steps involved in Execution, i'd say yes. Still i would also like to consider the factors like Memory/Disc access and networking which limit the performance of unmanaged code.
Quoting Herb Sutter
"First, JIT compilation isn’t the main issue. The root cause is much more fundamental: Managed languages made deliberate design tradeoffs to optimize for programmer productivity even when that was fundamentally in tension with, and at the expense of, performance efficiency."
There’s always an inescapable and fundamental difference between “prevention” and “cure” — when it comes to performance optimization, C++ always chooses “prevention,” and managed languages choose “cure” with the above-mentioned heroic efforts and many more. But the old ounce/pound saying is inescapable; you can’t beat prevention (in part because you can always add the cure after first doing the prevention, but not the reverse), and if you care about performance and control primarily then you should use a language that is designed to prioritize that up front, that’s all.
You can refer this article for more clarity
http://www.i-programmer.info/professional-programmer/i-programmer/4026-the-war-at-microsoft-managed-v-unmanaged.html
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
Is Software Testing really given its importance at the academic level?
I believe there is a need in universities offering Software Engineering (and probably even Computer Science) to treat Software Testing as a separate course and topic in itself, rather than as part of a general topic of Software Engineering. Irrespective of the testing methodology and techninque used, this is something that is as much a part of a software professional's life as writing code.
I am not sure this is happening in most of universities - it is still being given secondary importance. When a fresh graduate comes out of university, he is all about programming and creating things, not on how to test them.
Should Software Testing really become a first-class concept at the academic level (or at-least treated like one)?
Yes, it probably should be given more consideration, and at some places it is. As a part of the new curriculum at the university I attended all programming projects are required to include test cases. There's no way to enforce a particular methodology, like TDD, but I think this is a step in the right direction.
There are even tools available, like Web-CAT, that allow for automated evaluation of test coverage. The students submit their code and their tests, and the system tells them how they scored against a set of instructor-accepted tests.
Yes, absolutely.
At my university it was given equal theoretical coverage as software requirements and software development. All 3 had a third-level course mandatory for SE and optional for CS. Even though many courses require programming most courses aren't actually about programming.
I believe unit testing should be taught at the academic level, but not testing in general. A software tester need not worry him/herself with the same level of technical detail as the developer, meaning a broader understanding would probably be sufficient.